Spec-Zone.ru › Ansible 2.6

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

  • Описание
    • Требования
  • Параметры
  • Примечания
  • Примеры
  • Статус
  • Техническое обслуживание
    • Автор

Описание

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

Требования

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

  • psycopg2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
conn_limit
(добавлено в 2.4)
Указывает лимит подключений пользователя.
db
Имя базы данных, где будут предоставлены разрешения.
encrypted
bool

(добавлено в 1.4)
    Варианты:
  • no
  • да ←
Указывает, хранится ли пароль в хэшированном виде в базе данных. Пароли могут быть переданы уже хэшированными или без хэширования, и postgresql гарантирует, что хранимый пароль будет хэширован, когда encrypted установлен.
Примечание: Postgresql 10 и более поздние версии не поддерживают пароли без хэширования.
До Ansible 2.6, это было no по умолчанию.
expires
(добавлено в 1.4)
Дата, к которой должен истечь срок действия пароля пользователя.
Если установлено 'infinity', пароль пользователя никогда не истекает.
Обратите внимание, что это значение должно быть допустимым типом даты и времени SQL.
fail_on_user
bool
    Варианты:
  • нет
  • да ←
Если yes, происходит ошибка, когда пользователь не может быть удален. В противном случае просто регистрируется событие и выполнение продолжается.
login_host По умолчанию:
"localhost"
Хост, на котором выполняется PostgreSQL.
login_password
Пароль, используемый для аутентификации в PostgreSQL.
login_unix_socket
Путь к Unix-сокету для локальных подключений.
login_user По умолчанию:
"postgres"
Пользователь (роль), используемый для аутентификации в PostgreSQL.
name
обязательно
Имя пользователя (роли) для добавления или удаления.
no_password_changes
bool

(добавлено в 2.0)
    Варианты:
  • нет ←
  • да
Если yes, не проверять базу данных на изменения пароля. Действует, когда pg_authid недоступен (например, AWS RDS). В противном случае выполняйте необходимые изменения пароля.
password
Установите пароль пользователя, до 1.4 это было обязательно.
Пароль может быть передан без хэширования или хэшированным (MD5-хэшированным).
Пароль без хэширования будет автоматически хэширован при сохранении в базе данных, если параметр encrypted установлен, в противном случае он будет сохранен в виде простого текста.
При передаче хэшированного пароля он должен быть сгенерирован в формате 'str["md5"] + md5[ password + username ]', в результате чего будет 35 символов. Легкий способ сделать это echo "md5$(echo -n 'verysecretpasswordJOE' | md5sum).
Обратите внимание, что если предоставленная строка пароля уже в формате MD5-хэша, то она используется как есть, независимо от параметра encrypted.
port По умолчанию:
5432
Порт базы данных для подключения.
priv
Строка привилегий PostgreSQL в формате: table:priv1,priv2.
role_attr_flags
    Варианты:
  • [НЕТ]SUPERUSER
  • [НЕТ]CREATEROLE
  • [НЕТ]CREATEDB
  • [НЕТ]INHERIT
  • [НЕТ]LOGIN
  • [НЕТ]REPLICATION
  • [НЕТ]BYPASSRLS
Строка атрибутов роли PostgreSQL в формате: CREATEDB,CREATEROLE,SUPERUSER.
Обратите внимание, что '[НЕТ]CREATEUSER' устарел.
ssl_mode
(добавлено в 2.3)
    Варианты:
  • disable
  • allow
  • prefer ←
  • require
  • verify-ca
  • verify-full
Определяет, будет ли и с каким приоритетом устанавливаться защищенное SSL TCP/IP соединение с сервером.
См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах.
Значение по умолчанию prefer соответствует значению по умолчанию libpq.
ssl_rootcert
(добавлено в 2.3)
Указывает имя файла, содержащего сертификат(ы) авторитета сертификации (CA) SSL. Если файл существует, сертификат сервера будет проверен на подпись одним из этих авторитетов.
state
    Варианты:
  • present ←
  • absent
Состояние пользователя (роли).

Примечания

Примечание

  • Аутентификация по умолчанию предполагает, что вы входите как пользователь postgres на хосте или используете sudo.
  • Этот модуль использует psycopg2, адаптер базы данных Python PostgreSQL. Вам необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удалённый хост является сервером PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удалённом хосте. Для систем на основе Ubuntu, установите пакеты postgresql, libpq-dev и python-psycopg2 на удалённом хосте перед использованием этого модуля.
  • Если вы укажете 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, set its password (MD5-hashed) and grant privilege to create other
# databases and demote rails from super user status
- postgresql_user:
    name: rails
    password: md59543f1d82624df2b31672ec0f7050460
    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: ""

Статус

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

Техническое обслуживание

Этот модуль помечен как community, что означает, что он поддерживается сообществом Ansible. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.

Список других модулей, поддерживаемых сообществом Ansible, см. здесь.

Автор

  • Команда разработчиков 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.6/modules/postgresql_user_module.html

Spec-Zone.ru

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