Spec-Zone.ru › Ansible 2.4

postgresql_privs - Предоставление или отзыв привилегий на объекты базы данных PostgreSQL.

  • Описание
  • Требования (для хоста, на котором выполняется модуль)
  • Параметры
  • Примеры
  • Примечания
    • Статус

Описание

  • Предоставление или отзыв привилегий на объекты базы данных PostgreSQL.
  • Этот модуль в основном является оболочкой вокруг большей части функциональности операторов GRANT и REVOKE PostgreSQL с обнаружением изменений (GRANT/REVOKE привилегии НА тип объекты К/ИЗ роли).

Требования (для хоста, на котором выполняется модуль)

  • psycopg2

Параметры

параметр обязательно по умолчанию значения комментарии
база данных
да
Имя базы данных для подключения.
Псевдоним: db
grant_option
нет
  • да
  • нет
Разрешить ли role предоставлять/отзывать указанные привилегии/группы другим пользователям.
Установите в no для отзыва права GRANT OPTION, оставьте без значения, чтобы не вносить изменений.
grant_option действует только если state равен present.
Псевдоним: admin_option
хост
нет
Адрес хоста базы данных. Если не указано, используется сокет Unix.
Псевдоним: login_host
логин
нет postgres
Имя пользователя для аутентификации.
Псевдоним: login_user
объекты
нет
Список объектов базы данных, разделенных запятыми, для которых необходимо установить привилегии.
Если тип равен table или sequence, вместо этого можно использовать специальное значение ALL_IN_SCHEMA, чтобы указать все объекты базы данных указанного типа в схеме, указанной через schema. (Это также работает с PostgreSQL < 9.0.)
Если тип равен database, этот параметр можно опустить, в этом случае привилегии устанавливаются для базы данных, указанной через database.
Если тип равен функция, двоеточия (":") в именах объектов будут заменены запятыми (необходимо для указания сигнатур функций, см. примеры)
Псевдоним: объект
пароль
нет
Пароль для аутентификации.
Псевдоним: login_password)
порт
нет 5432
Порт базы данных для подключения.
привилегии
нет
Список привилегий, которые необходимо предоставить/отказать, разделенных запятыми.
Псевдоним: привилегия
роли
да
Список имен ролей (пользователей/групп), для которых необходимо установить разрешения, разделенных запятыми.
Вместо этого можно указать специальное значение PUBLIC, чтобы установить разрешения для неявно определенной группы PUBLIC.
Псевдоним: роль
схема
нет
Схема, содержащая объекты базы данных, указанные через объекты.
Может быть указан только если тип равен table, sequence или function. По умолчанию public в этих случаях.
ssl_mode
(добавлено в 2.3)
нет prefer
  • 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). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров.
состояние
нет present
  • present
  • absent
Если present, указанные привилегии предоставляются, если absent они отзываются.
тип
нет таблица
  • таблица
  • последовательность
  • функция
  • база данных
  • схема
  • язык
  • пространство имен
  • группа
Тип объекта базы данных, для которого необходимо установить привилегии.
unix_socket
нет
Путь к сокету Unix для локальных подключений.
Псевдоним: login_unix_socket

Примеры

# On database "library":
# GRANT SELECT, INSERT, UPDATE ON TABLE public.books, public.authors
# TO librarian, reader WITH GRANT OPTION
- postgresql_privs:
    database: library
    state: present
    privs: SELECT,INSERT,UPDATE
    type: table
    objs: books,authors
    schema: public
    roles: librarian,reader
    grant_option: yes

# Same as above leveraging default values:
- postgresql_privs:
    db: library
    privs: SELECT,INSERT,UPDATE
    objs: books,authors
    roles: librarian,reader
    grant_option: yes

# REVOKE GRANT OPTION FOR INSERT ON TABLE books FROM reader
# Note that role "reader" will be *granted* INSERT privilege itself if this
# isn't already the case (since state: present).
- postgresql_privs:
    db: library
    state: present
    priv: INSERT
    obj: books
    role: reader
    grant_option: no

# REVOKE INSERT, UPDATE ON ALL TABLES IN SCHEMA public FROM reader
# "public" is the default schema. This also works for PostgreSQL 8.x.
- postgresql_privs:
    db: library
    state: absent
    privs: INSERT,UPDATE
    objs: ALL_IN_SCHEMA
    role: reader

# GRANT ALL PRIVILEGES ON SCHEMA public, math TO librarian
- postgresql_privs:
    db: library
    privs: ALL
    type: schema
    objs: public,math
    role: librarian

# GRANT ALL PRIVILEGES ON FUNCTION math.add(int, int) TO librarian, reader
# Note the separation of arguments with colons.
- postgresql_privs:
    db: library
    privs: ALL
    type: function
    obj: add(int:int)
    schema: math
    roles: librarian,reader

# GRANT librarian, reader TO alice, bob WITH ADMIN OPTION
# Note that group role memberships apply cluster-wide and therefore are not
# restricted to database "library" here.
- postgresql_privs:
    db: library
    type: group
    objs: librarian,reader
    roles: alice,bob
    admin_option: yes

# GRANT ALL PRIVILEGES ON DATABASE library TO librarian
# Note that here "db: postgres" specifies the database to connect to, not the
# database to grant privileges on (which is specified via the "objs" param)
- postgresql_privs:
    db: postgres
    privs: ALL
    type: database
    obj: library
    role: librarian

# GRANT ALL PRIVILEGES ON DATABASE library TO librarian
# If objs is omitted for type "database", it defaults to the database
# to which the connection is established
- postgresql_privs:
    db: library
    privs: ALL
    type: database
    role: librarian

Примечания

Примечание

  • Аутентификация по умолчанию предполагает, что postgresql_privs выполняется пользователем postgres на удаленном хосте. (Ansible’s user или sudo-user).
  • Этот модуль требует наличия пакета Python psycopg2 на удаленном хосте. В случае, когда удаленный хост также является сервером PostgreSQL, PostgreSQL также должен быть установлен там, очевидно. Для систем на базе Debian/Ubuntu установите пакеты postgresql и python-psycopg2.
  • Параметры, принимающие списки, разделенные запятыми (привилегии, объекты, роли), имеют имена псевдонимов в единственном числе (привилегия, объект, роль).
  • Чтобы отозвать только GRANT OPTION для определенного объекта, установите состояние в present и grant_option в no (см. примеры).
  • Обратите внимание, что при отзыве привилегий у роли R, эта роль все еще может иметь доступ через привилегии, предоставленные любой роли, членом которой является R, включая PUBLIC.
  • Обратите внимание, что при отзыве привилегий у роли R, это делается как пользователем, указанным в параметре логин. Если R была предоставлена те же привилегии другим пользователем, R все еще может получить доступ к объектам базы данных через эти привилегии.
  • При отзыве привилегий предполагается RESTRICT (см. документацию PostgreSQL).
  • Параметр ssl_rootcert требует как минимум версию Postgres 8.4 и psycopg2 версию 2.4.3.

Статус

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

Для получения помощи в разработке модулей, если вы заинтересованы, пожалуйста, прочитайте Community Information & Contributing, Testing Ansible и Developing Modules.

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

Spec-Zone.ru

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