community.general.vertica_schema 模块 – 添加或删除 Vertica 数据库模式和角色

注意

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

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

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

要在 playbook 中使用它,请指定:community.general.vertica_schema

概要

  • 添加或删除 Vertica 数据库模式,以及(可选)具有模式访问权限的角色。

  • 在删除所有对象之前,不会删除模式。

  • 在这种情况下,如果模块尝试删除模式,它将失败,并且如果为模式创建的角色没有依赖关系,则只会删除它们。

要求

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

  • unixODBC

  • pyodbc

参数

参数

注释

cluster

字符串

Vertica 集群的名称。

默认值: "localhost"

create_roles

别名:create_role

字符串

要创建并授予模式使用和创建访问权限的以逗号分隔的角色列表。

db

字符串

Vertica 数据库的名称。

login_password

字符串

用于身份验证的密码。

login_user

字符串

用于身份验证的用户名。

默认值: "dbadmin"

owner

字符串

要设置为模式所有者的用户的名称。

port

字符串

要连接的 Vertica 集群端口。

默认值: "5433"

schema

别名:name

字符串 / 必需

要添加或删除的模式的名称。

state

字符串

是创建 present 还是删除 absent 模式。

选项

  • "present" ← (默认)

  • "absent"

usage_roles

别名:usage_role

字符串

要创建并授予模式使用访问权限的以逗号分隔的角色列表。

属性

属性

支持

描述

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 schema
  community.general.vertica_schema: name=schema_name db=db_name state=present

- name: Creating a new schema with specific schema owner
  community.general.vertica_schema: name=schema_name owner=dbowner db=db_name state=present

- name: Creating a new schema with roles
  community.general.vertica_schema:
    name=schema_name
    create_roles=schema_name_all
    usage_roles=schema_name_ro,schema_name_rw
    db=db_name
    state=present

作者

  • Dariusz Owczarek (@dareko)