community.postgresql.postgresql_membership модуль — Добавление или удаление ролей PostgreSQL из групп
Примечание
Этот модуль является частью коллекции community.postgresql (версия 3.6.1).
Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.
Для использования в playbook укажите: community.postgresql.postgresql_membership.
Описание
- Добавляет или удаляет роли PostgreSQL из групп (других ролей).
- Пользователи являются ролями с привилегией входа.
- Группы — это роли PostgreSQL, обычно без привилегии LOGIN.
- Типичный сценарий использования:
-
- Создайте новую группу (группы) с помощью модуля community.postgresql.postgresql_user с role_attr_flags=NOLOGIN
-
- Назначьте им необходимые привилегии с помощью модуля community.postgresql.postgresql_privs
-
- Добавьте необходимых пользователей PostgreSQL в новую группу (группы) с помощью этого модуля
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- psycopg2 >= 2.5.1
Параметры
Параметр | Комментарии |
|---|---|
ca_cert псевдонимы: ssl_rootcert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров сертификации. |
connect_params словарь добавлен в community.postgresql 2.3.0 | Дополнительные параметры, передаваемые в libpg. Эти параметры имеют приоритет. По умолчанию: |
db псевдонимы: login_db строка | Имя базы данных для подключения. |
fail_on_role булево | Если Варианты:
|
groups псевдонимы: group, source_role, source_roles список / элементы=строка / обязательный | Список групп (ролей), которые нужно предоставить или отозвать у target_roles. |
login_host псевдонимы: host строка | Хост, на котором работает база данных. Если у вас проблемы с подключением при использовании По умолчанию: |
login_password строка | Пароль, который должен использовать этот модуль для подключения к PostgreSQL. По умолчанию: |
login_unix_socket псевдонимы: unix_socket строка | Путь к сокету Unix доменного сокета для локальных подключений. По умолчанию: |
login_user псевдонимы: login строка | Имя пользователя, которое должен использовать этот модуль для подключения к PostgreSQL. По умолчанию: |
port псевдонимы: login_port целое число | Порт базы данных для подключения. По умолчанию: |
session_role строка | Переключиться на session_role после подключения. Указанная session_role должна быть ролью, членом которой является текущий login_user. Проверка разрешений для SQL-команд выполняется так, как будто роль session_role была той, которая первоначально вошла в систему. |
ssl_cert путь добавлен в community.postgresql 2.4.0 | Указывает имя файла клиентского сертификата SSL. |
ssl_key путь добавлен в community.postgresql 2.4.0 | Указывает местоположение секретного ключа, используемого для клиентского сертификата. |
ssl_mode строка | Определяет, будет ли и с каким приоритетом устанавливаться безопасное SSL TCP/IP-соединение с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. Значение по умолчанию Варианты:
|
state строка | Состояние членства. state=present подразумевает, что groups должны быть предоставлены target_roles. state=absent подразумевает, что groups должны быть отозваны у target_roles. state=exact подразумевает, что target_roles будут членами только groups (доступно с community.postgresql 2.2.0). Любые другие группы будут отозваны у target_roles. Варианты:
|
target_roles aliases: target_role, users, user список / элементы=строка / обязательный | Список целевых ролей (группы будут предоставлены им). |
trust_input булево добавлен в community.postgresql 0.2.0 | Если Использование Выбираемые значения:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме check_mode и возвращать прогноз изменений состояния без модификации целевого объекта. |
Примечания
Примечание
- По умолчанию используется аутентификация, предполагающая, что вы вошли в систему или используете sudo с учетной записью
postgresна хосте. - Чтобы избежать ошибки «Ошибка аутентификации клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует
psycopg, адаптер Python PostgreSQL базы данных. Вы должны убедиться, чтоpsycopg2 >= 2.5.1илиpsycopg3 >= 3.1.8установлены на хосте перед использованием этого модуля. - Если удалённый хост — сервер PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удалённом хосте.
- Для систем на базе Ubuntu установите пакеты
postgresql,libpq-dev, иpython3-psycopg2на удалённом хосте перед использованием этого модуля.
См. также
См. также
- community.postgresql.postgresql_user
-
Создание, изменение или удаление пользователя (роли) из экземпляра сервера PostgreSQL.
- community.postgresql.postgresql_privs
-
Предоставление или отмена привилегий на объекты базы данных PostgreSQL.
- community.postgresql.postgresql_owner
-
Изменение владельца объекта базы данных PostgreSQL.
- Справочник по членству в ролях 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: false
state: absent
- name: >
Make sure alice and bob are members only of marketing and sales.
If they are members of other groups, they will be removed from those groups
community.postgresql.postgresql_membership:
group:
- marketing
- sales
target_roles:
- alice
- bob
state: exact
- name: Make sure alice and bob do not belong to any groups
community.postgresql.postgresql_membership:
group: []
target_roles:
- alice
- bob
state: exact
Значения возврата
Общие значения возврата описаны в здесь, следующие поля уникальны для этого модуля:
Ключ | Описание |
|---|---|
granted словарь | Словарь предоставленных групп и ролей. Возвращается: если state=present Пример: |
queries строка | Список выполненных запросов. Возвращается: успех Пример: |
revoked словарь | Словарь отозванных групп и ролей. Возвращается: если state=absent Пример: |
state строка | Состояние членства, которое пытались установить. Возвращается: успех Пример: |
Ссылки на сборку
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/postgresql/postgresql_membership_module.html