community.general.postgresql_membership – Добавление или удаление ролей PostgreSQL из групп
Примечание
Этот плагин входит в коллекцию community.general (версия 1.3.2).
Для установки используйте: ansible-galaxy collection install community.general.
Для использования в книге задач укажите: community.general.postgresql_membership.
Описание
- Добавляет или удаляет роли PostgreSQL из групп (другие роли).
- Пользователи являются ролями с привилегией входа.
- Группы — это роли PostgreSQL, обычно без привилегии LOGIN.
- Общий случай использования:
-
- добавить новую группу (группы) с помощью модуля community.general.postgresql_user с параметром role_attr_flags=NOLOGIN
-
- предоставить им необходимые привилегии с помощью модуля community.general.postgresql_privs
-
- добавить нужных пользователей PostgreSQL в новую группу (группы) с помощью этого модуля
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) SSL-центра сертификации (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. псевдонимы: ssl_rootcert | |
| db строка | Имя базы данных для подключения. псевдонимы: login_db | |
| fail_on_role логическое значение |
| Если yes, прервать выполнение, когда группа или целевая роль не найдены. Если no, просто вывести предупреждение и продолжить. |
| groups список / элементы=строка / обязательно | Список групп (ролей), которые необходимо предоставить или отозвать у target_roles. псевдонимы: group, source_role, source_roles | |
| login_host строка | Хост, на котором работает база данных. | |
| login_password строка | Пароль, используемый для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix доменной системы для локальных подключений. | |
| login_user строка | Значение по умолчанию: "postgres" | Имя пользователя, используемое для аутентификации. |
| 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 строка |
| Состояние членства.
state=present подразумевает, что groups должны быть предоставлены target_roles.
state=absent подразумевает, что groups должны быть отозваны у target_roles. |
| target_roles список / элементы=строка / обязательно | Список целевых ролей (им будут предоставлены группы). псевдонимы: target_role, users, user | |
| trust_input логическое значение добавлено в 0.2.0 от community.general |
| Если no, проверять, являются ли значения параметров groups, target_roles, session_role потенциально опасными.Использование 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.
См. также
См. также
- community.general.postgresql_user
-
Официальная документация модуля community.general.postgresql_user.
- community.general.postgresql_privs
-
Официальная документация модуля community.general.postgresql_privs.
- community.general.postgresql_owner
-
Официальная документация модуля community.general.postgresql_owner.
- Справочник по членству в ролях PostgreSQL
-
Полный справочник по документации членства в ролях PostgreSQL.
- Справочник по атрибутам ролей PostgreSQL
-
Полный справочник по документации атрибутов ролей PostgreSQL.
Примеры
- name: Grant role read_only to alice and bob
community.general.postgresql_membership:
group: read_only
target_roles:
- alice
- bob
state: present
# you can also use target_roles: alice,bob,etc to pass the role list
- name: Revoke role read_only and exec_func from bob. Ignore if roles don't exist
community.general.postgresql_membership:
groups:
- read_only
- exec_func
target_role: bob
fail_on_role: no
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны в здесь, следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| granted словарь | если state=present | Словарь предоставленных групп и ролей. Пример: {'ro_group': ['alice', 'bob']} |
| queries строка | всегда | Список выполненных запросов. Пример: ['GRANT "user_ro" TO "alice"'] |
| revoked словарь | если state=absent | Словарь отозванных групп и ролей. Пример: {'ro_group': ['alice', 'bob']} |
| state строка | всегда | Состояние членства, которое пытались установить. Пример: present |
Авторы
- Андрей Клычков (@Andersson007)
© 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_membership_module.html