Spec-Zone.ru › Ansible 2.5

postgresql_user - Добавляет или удаляет пользователей (роли) из базы данных PostgreSQL.

  • Обзор
    • Требования
  • Параметры
  • Примечания
  • Примеры
  • Статус
    • Автор

Обзор

  • Добавление или удаление пользователей (ролей) PostgreSQL на удаленном хосте и, по желанию, предоставление пользователям доступа к существующей базе данных или таблицам.
  • Основная функция модуля — создание или удаление ролей из кластера PostgreSQL. Назначение или снятие привилегий — необязательный шаг, который работает с одной базой данных за раз. Это позволяет вызывать модуль несколько раз в одном модуле для изменения разрешений в разных базах данных или для предоставления разрешений уже существующим пользователям.
  • Пользователя нельзя удалить, пока от него не будут отозваны все привилегии. В такой ситуации, если модуль пытается удалить пользователя, он потерпит неудачу. Чтобы этого избежать, параметр fail_on_user указывает модулю попытаться удалить пользователя, но если это невозможно, продолжить работу; модуль сообщит о произошедших изменениях и отдельно о том, был ли пользователь удален или нет.

Требования

Ниже перечислены требования, необходимые на хосте, который выполняет этот модуль.

  • psycopg2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
conn_limit
(добавлен в 2.4)
Значение по умолчанию:
None
Указывает предел подключений пользователей.
db Значение по умолчанию:
None
имя базы данных, к которой будут предоставлены разрешения
encrypted
(добавлен в 1.4)
Значение по умолчанию:
no
указывает, хранится ли пароль в захешированном виде в базе данных. Булево значение. Пароли могут передаваться в захешированном или незахешированном виде, и postgresql гарантирует, что хранимый пароль будет захеширован, когда установлен параметр encrypted.
expires
(добавлен в 1.4)
Значение по умолчанию:
None
Дата истечения срока действия пароля пользователя.
Если установлено 'infinity', пароль пользователя никогда не истекает.
Обратите внимание, что это значение должно быть допустимым типом даты и времени SQL.
fail_on_user
    Варианты:
  • да ←
  • нет
Значение по умолчанию:
да
если yes, прерывать выполнение, когда пользователя нельзя удалить. В противном случае просто записывать логи и продолжать
login_host Значение по умолчанию:
localhost
Хост, на котором работает PostgreSQL.
login_password Значение по умолчанию:
None
Пароль, используемый для аутентификации с PostgreSQL
login_unix_socket Значение по умолчанию:
None
Путь к сокету Unix-домена для локальных подключений
login_user Значение по умолчанию:
postgres
Пользователь (роль), используемый для аутентификации с PostgreSQL
name
обязательно
Значение по умолчанию:
None
имя пользователя (роли) для добавления или удаления
no_password_changes
(добавлен в 2.0)
    Варианты:
  • да
  • нет ←
Значение по умолчанию:
нет
если yes, не проверять базу данных на изменения пароля. Действует, когда pg_authid недоступен (например, AWS RDS). В противном случае вносить необходимые изменения пароля.
password Значение по умолчанию:
None
устанавливает пароль пользователя, до 1.4 это было обязательно.
При передаче зашифрованного пароля параметр encrypted также должен быть true, и он должен быть сгенерирован в формате 'str[\"md5\"] + md5[ password + username ]', что даёт в итоге 35 символов. Легкий способ сделать это: echo \"md5`echo -n \"verysecretpasswordJOE\" | md5`\". Обратите внимание, что если переданная строка пароля уже в формате MD5-хеша, то она используется как есть, независимо от параметра encrypted.
port Значение по умолчанию:
5432
Порт базы данных для подключения.
priv Значение по умолчанию:
None
Строка привилегий PostgreSQL в формате: table:priv1,priv2
role_attr_flags
    Варианты:
  • [НЕТ]SUPERUSER
  • [НЕТ]CREATEROLE
  • [НЕТ]CREATEDB
  • [НЕТ]INHERIT
  • [НЕТ]LOGIN
  • [НЕТ]REPLICATION
  • [НЕТ]BYPASSRLS
Значение по умолчанию:
Строка атрибутов роли PostgreSQL в формате: CREATEDB,CREATEROLE,SUPERUSER
Обратите внимание, что '[НЕТ]CREATEUSER' устарел.
ssl_mode
(добавлен в 2.3)
    Варианты:
  • отключить
  • разрешить
  • предпочитать ←
  • требовать
  • проверить-сертификат-центра
  • проверить-полностью
Определяет, будет ли и с какой приоритетностью устанавливаться защищённое SSL TCP/IP соединение с сервером.
См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения более подробной информации о режимах.
Значение по умолчанию prefer соответствует значению по умолчанию libpq.
ssl_rootcert
(добавлен в 2.3)
Значение по умолчанию:
None
Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL. Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров.
state
    Варианты:
  • наличие ←
  • отсутствие
Состояние пользователя (роли)

Примечания

Примечание

  • По умолчанию предполагается, что вы входите как пользователь postgres или используете sudo для входа в postgres на хосте.
  • Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Вы должны убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удалённый хост является сервером PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удалённом хосте. Для систем на основе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удалённом хосте перед использованием этого модуля.
  • Если библиотека passlib установлена, то пароли, которые зашифрованы в базе данных, но не зашифрованы при передаче в качестве аргументов, могут быть проверены на изменения. Если библиотека passlib не установлена, будет предполагаться изменение незашифрованных паролей, хранящихся в зашифрованном виде в базе данных.
  • Если вы укажете PUBLIC в качестве пользователя, то изменения привилегий будут применяться ко всем пользователям. Вы не можете указывать пароль или role_attr_flags, когда указан пользователь PUBLIC.
  • Параметр ssl_rootcert требует, по крайней мере, версии Postgres 8.4 и psycopg2 версии 2.4.3.

Примеры

# Create django user and grant access to database and products table
- postgresql_user:
    db: acme
    name: django
    password: ceec4eif7ya
    priv: "CONNECT/products:ALL"

# Create rails user, grant privilege to create other databases and demote rails from super user status
- postgresql_user:
    name: rails
    password: secret
    role_attr_flags: CREATEDB,NOSUPERUSER

# Remove test user privileges from acme
- postgresql_user:
    db: acme
    name: test
    priv: "ALL/products:ALL"
    state: absent
    fail_on_user: no

# Remove test user from test database and the cluster
- postgresql_user:
    db: test
    name: test
    priv: ALL
    state: absent

# Set user's password with no expire date
- postgresql_user:
    db: acme
    name: django
    password: mysupersecretword
    priv: "CONNECT/products:ALL"
    expire: infinity

# Example privileges string format
# INSERT,UPDATE/table:SELECT/anothertable:ALL

# Remove an existing user's password
- postgresql_user:
    db: test
    user: test
    password: NULL

Статус

Этот модуль помечен как stableinterface, что означает, что авторы этого модуля гарантируют, что не будет производиться несовместимых изменений интерфейса.

Автор

  • Команда разработчиков Ansible

Подсказка

Если вы заметите какие-либо проблемы в этом документе, вы можете отредактировать его, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/postgresql_user_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API