community.general.postgresql_lang – Добавляет, удаляет или изменяет процедурные языки с базой данных PostgreSQL
Примечание
Этот плагин входит в состав коллекции community.general (версия 1.3.2).
Для его установки используйте: ansible-galaxy collection install community.general.
Чтобы использовать его в книге задач, укажите: community.general.postgresql_lang.
Краткое описание
- Добавляет, удаляет или изменяет процедурные языки с базой данных PostgreSQL.
- Этот модуль позволяет добавить язык, удалить язык или изменить доверительные отношения с базой данных PostgreSQL.
- Модуль может использоваться на машине, на которой он выполняется, или на удалённом узле.
- При удалении языка из базы данных возможно, что зависимости не позволят удалить базу данных. В этом случае вы можете указать cascade=yes, чтобы автоматически удалить объекты, зависящие от языка (например, функции на этом языке).
- Если язык не может быть удалён, потому что он необходим системе базы данных, вы можете указать fail_on_drop=no, чтобы проигнорировать ошибку.
- Будьте осторожны при маркировке языка как надёжного, так как это может быть потенциальной уязвимостью. Ненадёжные языки позволяют использовать этот язык для создания новых функций только пользователям с привилегиями суперпользователя PostgreSQL.
Требования
Ниже перечислены требования, необходимые на узле, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификаты центра сертификации SSL (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. Псевдонимы: 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.general | Установите владельца для языка. Игнорируется при state=absent. | |
| port целое число | По умолчанию: 5432 | Порт базы данных для подключения. Псевдонимы: login_port |
| 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.general |
| Если no, проверьте, являются ли значения параметров lang, session_role, owner потенциально опасными.Использование no имеет смысл только тогда, когда SQL-инъекции через параметры возможны. |
Примечания
Примечание
- Аутентификация по умолчанию предполагает, что вы либо входите в систему как пользователь, либо используете sudo для входа в
postgresна узле. - Чтобы избежать ошибки «Ошибка проверки подлинности клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Необходимо убедиться, что 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.general.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.general.postgresql_lang:
db: testdb
lang: pltclu
state: present
trust: yes
force_trust: yes
- name: Remove language pltclu from database testdb
community.general.postgresql_lang:
db: testdb
lang: pltclu
state: absent
- name: Remove language pltclu from database testdb and remove all dependencies
community.general.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.general.postgresql_lang:
db: testdb
lang: pltclu
state: absent
fail_on_drop: no
- name: In testdb change owner of mylang to alice
community.general.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/general/postgresql_lang_module.html