community.postgresql.postgresql_membership – Добавление или удаление ролей PostgreSQL из групп
Примечание
Этот плагин входит в коллекцию community.postgresql (версия 1.1.1).
Для его установки используйте: ansible-galaxy collection install community.postgresql.
Для использования в книге задач укажите: community.postgresql.postgresql_membership.
Обзор
- Добавляет или удаляет роли PostgreSQL из групп (других ролей).
- Пользователи являются ролями с привилегией входа.
- Группы — роли PostgreSQL, обычно без привилегии LOGIN.
- Типичный случай использования:
-
- Добавьте новую группу (groups) с помощью модуля community.postgresql.postgresql_user со значением role_attr_flags=NOLOGIN
-
- Предоставьте необходимые привилегии с помощью модуля community.postgresql.postgresql_privs
-
- Добавьте нужных пользователей PostgreSQL в новую группу (groups) с помощью этого модуля
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL. Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. Псевдонимы: 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.postgresql |
| Если no, проверяйте, являются ли значения параметров groups, target_roles, session_role потенциально опасными.Использование no имеет смысл только в тех случаях, когда возможны SQL-инъекции через параметры. |
Примечания
Примечание
- Поддерживает
check_mode. - Авторизация по умолчанию предполагает, что вы либо входите в систему как пользователь, либо используете sudo для учетной записи
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.
См. также
См. также
- community.postgresql.postgresql_user
-
Официальная документация по модулю community.postgresql.postgresql_user.
- community.postgresql.postgresql_privs
-
Официальная документация по модулю community.postgresql.postgresql_privs.
- community.postgresql.postgresql_owner
-
Официальная документация по модулю community.postgresql.postgresql_owner.
- Ссылка на документацию о членстве в роли PostgreSQL
-
Полное руководство по документации о членстве в роли PostgreSQL.
- Ссылка на документацию о атрибутах роли PostgreSQL
-
Полное руководство по документации об атрибутах роли PostgreSQL.
Примеры
- name: Grant role read_only to alice and bob
community.postgresql.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.postgresql.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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/postgresql/postgresql_membership_module.html