community.postgresql.postgresql_lang – Добавляет, удаляет или изменяет процедурные языки с базой данных PostgreSQL
Примечание
Этот плагин является частью коллекции community.postgresql (версия 1.0.0).
Для его установки используйте: ansible-galaxy collection install community.postgresql.
Для использования в книге задач укажите: community.postgresql.postgresql_lang.
Обзор
- Добавляет, удаляет или изменяет процедурные языки в базе данных PostgreSQL.
- Этот модуль позволяет добавлять язык, удалять язык или изменять доверенные отношения с базой данных PostgreSQL.
- Модуль может быть использован на машине, где он выполняется, или на удалённом узле.
- При удалении языка из базы данных, возможно, что зависимости препятствуют удалению базы данных. В этом случае вы можете указать cascade=yes, чтобы автоматически удалить объекты, зависящие от языка (например, функции на языке).
- В случае, если язык не может быть удалён, потому что он необходим системе базы данных, вы можете указать fail_on_drop=no, чтобы пропустить ошибку.
- Будьте осторожны при маркировке языка как надёжного, поскольку это может быть потенциальной угрозой безопасности. Ненадёжные языки позволяют использовать этот язык для создания новых функций только пользователям с привилегиями суперпользователя PostgreSQL.
Требования
Ниже перечислены требования, необходимые на узле, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификаты (CA) сертификата авторитета SSL. Если файл существует, сертификат сервера будет проверен на соответствие одному из этих авторитетов. псевдонимы: ssl_rootcert | |
| cascade логическое |
| При удалении языка также удаляются объекты, зависящие от этого языка. Используется только при state=absent. |
| db строка / обязательно | Имя базы данных для подключения и где будет добавлен, удалён или изменён язык. псевдонимы: login_db | |
| fail_on_drop логическое |
| Если yes, то произойдёт сбой при удалении языка. В противном случае, будет только регистрация и продолжение.В некоторых случаях удаление языка невозможно (используется системой базы данных). В случае, если зависимости блокируют удаление, рассмотрите использование cascade. |
| force_trust логическое |
| Помечает язык как надёжный, даже если он помечен как ненадежный в pg_pltemplate. Используйте с осторожностью! |
| lang строка / обязательно | Имя процедурного языка для добавления, удаления или изменения. псевдонимы: name | |
| login_host строка | Узел, на котором запущена база данных. | |
| login_password строка | Пароль, используемый для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix для локальных подключений. | |
| login_user строка | Значение по умолчанию: "postgres" | Имя пользователя, используемое для аутентификации. |
| owner строка добавлен в 0.2.0 community.postgresql | Устанавливает владельца языка. Игнорируется при state=absent. | |
| port целое число | Значение по умолчанию: 5432 | Порт базы данных для подключения. псевдонимы: login_port |
| session_role строка | Переключается на роль session_role после подключения. Указанная session_role должна быть ролью, членом которой является текущий login_user. Проверка разрешений для SQL-команд выполняется так, как будто session_role был тем, кто первоначально вошёл в систему. | |
| ssl_mode строка |
| Определяет, будет ли и с какой приоритетностью устанавливаться защищённое SSL TCP/IP соединение с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. Значение по умолчанию prefer соответствует значению по умолчанию libpq. |
| state строка |
| Состояние языка для выбранной базы данных. |
| trust логическое |
| Сделать этот язык надёжным для выбранной базы данных. |
| trust_input логическое добавлен в 0.2.0 community.postgresql |
| Если no, проверять, являются ли значения параметров lang, session_role, owner потенциально опасными.Использовать no имеет смысл только тогда, когда SQL-инъекции через параметры возможны. |
Примечания
Примечание
- По умолчанию аутентификация предполагает, что вы входите под учетной записью
postgresна хосте или заменяете её. - Чтобы избежать ошибки «Ошибка аутентификации клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует psycopg2, адаптер базы данных PostgreSQL Python. Необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля.
- Если удалённый узел является сервером PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удалённом узле.
- Для систем на базе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удалённом узле перед использованием этого модуля.
- Параметр ca_cert требует как минимум Postgres версии 8.4 и psycopg2 версии 2.4.3.
См. также
См. также
- Языки 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: yes
force_trust: yes
- 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: yes
- 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: no
- name: In testdb change owner of mylang to alice
community.postgresql.postgresql_lang:
db: testdb
lang: mylang
owner: alice
Значения возврата
Общие значения возврата документированы здесь, следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| queries список / элементы=строка | всегда | Список выполненных запросов. Пример: ['CREATE LANGUAGE "acme"'] |
Авторы
- Jens Depuydt (@jensdepuydt)
- Thomas O’Donnell (@andytom)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/postgresql/postgresql_lang_module.html