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

注意

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

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

要安装它,请使用:ansible-galaxy collection install community.general。您需要进一步的要求才能使用此模块,有关详细信息,请参阅要求

要在 playbook 中使用它,请指定: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

支持:

当处于 diff 模式时,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。

注释

注意

  • 默认身份验证假设您正在以主机上的 dbadmin 帐户登录或 sudo 到该帐户。

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

  • 配置 Vertica 的 unixODBC 需要将 Driver = /opt/vertica/lib64/libverticaodbc.so 添加到 /etc/odbcinst.ini$HOME/.odbcinst.iniVertica 部分中,并将 ErrorMessagesPath = /opt/vertica/lib64DriverManagerEncoding = UTF-16 添加到 /etc/vertica.ini$HOME/.vertica.iniDriver 部分中。

示例

- 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)