Spec-Zone.ru › Ansible 2.7

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

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

Описание

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

Требования

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

  • psycopg2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
conn_limit
-
добавлено в 2.4
Устанавливает лимит подключений пользователя.
db
-
Имя базы данных, где будут предоставлены разрешения.
encrypted
boolean
добавлено в 1.4
    Варианты:
  • no
  • yes ←
Указывает, хранится ли пароль в захешированном виде в базе данных. Пароли могут передаваться в захешированном или незахешированном виде, и postgresql гарантирует, что хранящийся пароль будет захеширован, когда encrypted установлен.
Примечание: Postgresql 10 и более поздних версий не поддерживает незахешированные пароли.
До Ansible 2.6, это было no по умолчанию.
expires
-
добавлено в 1.4
Дата истечения срока действия пароля пользователя.
Если установлено 'infinity', пароль пользователя никогда не истекает.
Обратите внимание, что это значение должно быть допустимым типом данных SQL-даты и времени.
fail_on_user
boolean
    Варианты:
  • no
  • yes ←
Если yes, произойдет ошибка, если пользователь не может быть удален. В противном случае просто записывается лог и выполняется дальнейшая обработка.
login_host
-
По умолчанию:
"localhost"
Хост, на котором работает PostgreSQL.
login_password
-
Пароль, используемый для аутентификации в PostgreSQL.
login_unix_socket
-
Путь к Unix-сокету доменной области для локальных подключений.
login_user
-
По умолчанию:
"postgres"
Пользователь (роль), используемый для аутентификации в PostgreSQL.
name
- / обязательно
Имя пользователя (роли) для добавления или удаления.
no_password_changes
boolean
добавлено в 2.0
    Варианты:
  • no ←
  • yes
Если 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
Указывает имя файла, содержащего сертификат(ы) SSL-центра сертификации (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров сертификации.
state
-
    Варианты:
  • present ←
  • absent
Состояние пользователя (роли).

Примечания

Примечание

  • По умолчанию предполагается, что вы либо входите в систему как пользователь postgres, либо запускаете команду sudo к учетной записи postgres на хосте.
  • Этот модуль использует 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"
    expires: "Jan 31 2020"

# 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"
    expires: 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]
  • Этот модуль поддерживается сообществом Ansible. [community]

Авторы

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

Spec-Zone.ru

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