postgresql_membership – Добавление или удаление ролей PostgreSQL из групп
Новая в версии 2.8.
Описание
- Добавляет или удаляет роли PostgreSQL из групп (других ролей).
- Пользователи — это роли с привилегием доступа.
- Группы — это роли PostgreSQL, обычно без привилегии LOGIN.
- Типичный случай использования:
-
- Добавление новой группы (групп) с помощью модуля postgresql_user со значением role_attr_flags=NOLOGIN
-
- Назначение им необходимых привилегий с помощью модуля postgresql_privs
-
- Добавление необходимых пользователей PostgreSQL в новую группу (группы) с помощью данного модуля
Требования
Ниже перечислены требования, которые должны быть выполнены на хосте, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации (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 |
Примечания
Примечание
- Аутентификация по умолчанию предполагает, что вы либо входите в систему как пользователь, либо используете sudo для входа в
postgresучетную запись на хосте. - Чтобы избежать ошибки «Ошибка проверки подлинности peer для пользователя 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_user – Добавление или удаление пользователя (роли) из экземпляра сервера PostgreSQL
- Официальная документация по модулю postgresql_user.
- postgresql_privs – Предоставление или отозвание привилегий для объектов базы данных PostgreSQL
- Официальная документация по модулю postgresql_privs.
- postgresql_owner – Изменение владельца объекта базы данных PostgreSQL
- Официальная документация по модулю postgresql_owner.
- Справочник по членству в ролях PostgreSQL
- Полный справочник по документации PostgreSQL по членству в ролях.
- Справочник по атрибутам ролей PostgreSQL
- Полный справочник по документации PostgreSQL по атрибутам ролей.
Примеры
- name: Grant role read_only to alice and bob
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
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 |
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [preview]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Andrew Klychkov (@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.9/modules/postgresql_membership_module.html