community.general.vertica_user 模块 – 添加或删除 Vertica 数据库用户并分配角色

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 要求 了解详情。

要在剧本中使用它,请指定:community.general.vertica_user

概要

  • 添加或删除 Vertica 数据库用户,并可选择分配角色。

  • 在所有依赖项都被删除之前,用户不会被删除。

  • 在这种情况下,如果模块尝试删除用户,它将失败,并且只会删除授予用户的角色。

要求

执行此模块的主机需要以下要求。

  • unixODBC

  • pyodbc

参数

参数

注释

cluster

字符串

Vertica 集群的名称。

默认值: "localhost"

db

字符串

Vertica 数据库的名称。

expired

布尔值

设置用户的密码过期时间。

选项

  • false

  • true

ldap

布尔值

如果用户通过 LDAP 进行身份验证,则设置为 true。

用户将被创建,密码过期并设置为 $ldap$

选项

  • false

  • true

login_password

字符串

用于身份验证的密码。

login_user

字符串

用于身份验证的用户名。

默认值: "dbadmin"

password

字符串

使用 MD5 算法加密的用户的密码。

密码必须使用格式 "md5" + md5[password + username] 生成,总共 35 个字符。一种简单的方法是使用 select 'md5'||md5('<user_password><user_name>') 查询 Vertica 数据库。

port

字符串

要连接到的 Vertica 集群端口。

默认值: "5433"

profile

字符串

设置用户的配置文件。

resource_pool

字符串

设置用户的资源池。

roles

别名:role

字符串

要分配给用户的角色的逗号分隔列表。

state

字符串

是创建 (present)、删除 (absent) 还是锁定 (locked) 用户。

选项

  • "present" ← (默认)

  • "absent"

  • "locked"

user

别名:name

字符串 / 必需

要添加或删除的用户的名称。

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 中运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。

备注

注意

  • 默认身份验证假设您正在主机上以 dbadmin 帐户登录或使用 sudo 命令。

  • 此模块使用 pyodbc,这是一个 Python ODBC 数据库适配器。您必须确保在主机上安装并正确配置了 unixODBCpyodbc

  • 配置用于 Vertica 的 unixODBC 需要将 Driver = /opt/vertica/lib64/libverticaodbc.so 添加到 /etc/odbcinst.ini$HOME/.odbcinst.ini 文件的 Vertica 节区,并将 ErrorMessagesPath = /opt/vertica/lib64DriverManagerEncoding = UTF-16 添加到 /etc/vertica.ini$HOME/.vertica.ini 文件的 Driver 节区。

示例

- name: Creating a new vertica user with password
  community.general.vertica_user: name=user_name password=md5<encrypted_password> db=db_name state=present

- name: Creating a new vertica user authenticated via ldap with roles assigned
  community.general.vertica_user:
    name=user_name
    ldap=true
    db=db_name
    roles=schema_name_ro
    state=present

作者

  • Dariusz Owczarek (@dareko)