community.postgresql.postgresql_lang 模块 – 在 PostgreSQL 数据库中添加、删除或更改过程语言
注意
此模块是 community.postgresql 集合 (版本 3.9.0) 的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.postgresql
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在 playbook 中使用它,请指定: community.postgresql.postgresql_lang
。
已弃用
- 在以下版本中移除:
版本 4.0.0
- 原因:
从 PostgreSQL 9.1 开始,大多数过程语言已成为扩展。
- 替代方案:
概要
在 PostgreSQL 数据库中添加、删除或更改过程语言。
此模块允许您添加语言、删除语言或更改与 PostgreSQL 数据库的信任关系。
此模块可以在执行它的机器上使用,也可以在远程主机上使用。
从数据库中删除语言时,依赖项可能会阻止数据库被删除。在这种情况下,您可以指定 *cascade=true* 以自动删除依赖于该语言的对象(例如,该语言中的函数)。
如果由于数据库系统需要而无法删除语言,您可以指定 *fail_on_drop=false* 以忽略错误。
将语言标记为受信任时请小心,因为这可能是潜在的安全漏洞。不受信任的语言仅允许具有 PostgreSQL 超级用户权限的用户使用此语言创建新函数。
要求
执行此模块的主机需要以下要求。
psycopg2 >= 2.5.1
参数
参数 |
注释 |
---|---|
指定包含 SSL 证书颁发机构 (CA) 证书的文件的名称。 如果文件存在,则服务器的证书将被验证为由这些机构之一签名。 |
|
删除语言时,也删除依赖于此语言的对象。 仅在 *state=absent* 时使用。 选项
|
|
任何要传递给 libpg 的附加参数。 这些参数优先。 默认值: |
|
要连接到的数据库的名称,以及将在其中添加、删除或更改语言的数据库。 |
|
如果 在某些情况下,无法删除语言(数据库系统使用)。 当依赖项阻止删除时,请考虑使用 *cascade*。 选项
|
|
即使在 pg_pltemplate 中将其标记为不受信任,也将语言标记为受信任。 谨慎使用! 选项
|
|
要添加、删除或更改的过程语言的名称。 |
|
运行数据库的主机。 如果您在使用 默认值: |
|
此模块应用于建立其 PostgreSQL 会话的密码。 默认值: |
|
本地连接的 Unix 域套接字的路径。 默认值: |
|
此模块应用于建立其 PostgreSQL 会话的用户名。 默认值: |
|
为语言设置所有者。 在 *state=absent* 时忽略。 |
|
连接数据库的端口。 默认值: |
|
连接后切换到session_role。 指定的session_role必须是当前login_user所属的角色。 SQL命令的权限检查将如同session_role是最初登录的用户一样进行。 |
|
指定客户端SSL证书的文件名。 |
|
指定客户端证书使用的密钥位置。 |
|
确定是否以及以何种优先级与服务器协商安全的SSL TCP/IP连接。 有关模式的更多信息,请参阅 https://postgresql.ac.cn/docs/current/static/libpq-ssl.html。 默认值为 选项
|
|
所选数据库中语言的状态。 选项
|
|
使此语言对所选数据库可信。 选项
|
|
如果为 只有当可能通过参数进行SQL注入时,使用 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在check_mode下运行,并在不修改目标的情况下返回更改状态预测。 |
备注
注意
默认身份验证假设您以主机上的
postgres
帐户登录或使用sudo。为避免“用户postgres的同行身份验证失败”错误,请使用postgres用户作为become_user。
此模块使用
psycopg
,这是一个Python PostgreSQL数据库适配器。在使用此模块之前,必须确保主机上已安装psycopg2 >= 2.5.1
或psycopg3 >= 3.1.8
。如果远程主机是PostgreSQL服务器(默认情况),则必须在远程主机上安装PostgreSQL。
对于基于Ubuntu的系统,在使用此模块之前,请在远程主机上安装
postgresql
、libpq-dev
和python3-psycopg2
包。
另请参阅
另请参阅
- PostgreSQL语言
关于PostgreSQL语言的常规信息。
- CREATE LANGUAGE 参考
CREATE LANGUAGE命令文档的完整参考。
- ALTER LANGUAGE 参考
ALTER LANGUAGE命令文档的完整参考。
- DROP LANGUAGE 参考
DROP LANGUAGE命令文档的完整参考。
示例
- name: Add language pltclu to database testdb if it doesn't exist
community.postgresql.postgresql_lang: db=testdb lang=pltclu state=present
# Add language pltclu to database testdb if it doesn't exist and mark it as trusted.
# Marks the language as trusted if it exists but isn't trusted yet.
# force_trust makes sure that the language will be marked as trusted
- name: Add language pltclu to database testdb if it doesn't exist and mark it as trusted
community.postgresql.postgresql_lang:
db: testdb
lang: pltclu
state: present
trust: true
force_trust: true
- name: Remove language pltclu from database testdb
community.postgresql.postgresql_lang:
db: testdb
lang: pltclu
state: absent
- name: Remove language pltclu from database testdb and remove all dependencies
community.postgresql.postgresql_lang:
db: testdb
lang: pltclu
state: absent
cascade: true
- name: Remove language c from database testdb but ignore errors if something prevents the removal
community.postgresql.postgresql_lang:
db: testdb
lang: pltclu
state: absent
fail_on_drop: false
- name: In testdb change owner of mylang to alice
community.postgresql.postgresql_lang:
db: testdb
lang: mylang
owner: alice
返回值
常见的返回值已在此处记录,以下是此模块特有的字段
键 |
描述 |
---|---|
已执行查询的列表。 返回:成功 示例: |
状态
此模块将在4.0.0版本中移除。[已弃用]
更多信息请参见 已弃用。