Spec-Zone.ru › Ansible

Модуль community.postgresql.postgresql_owner — изменение владельца объекта базы данных PostgreSQL

Примечание

Этот модуль входит в коллекцию community.postgresql (версия 4.2.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.postgresql.postgresql_owner.

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Изменение владельца объекта базы данных PostgreSQL.
  • Также позволяет переназначить владельца объектов базы данных, принадлежащих одной роли базы данных, другой роли.

Требования

На узле, выполняющем этот модуль, должны быть установлены следующие компоненты.

  • psycopg2 >= 2.5.1

Параметры

Параметр

Комментарии

ca_cert

псевдонимы: ssl_rootcert

строка

Указывает имя файла, содержащего сертификат (или сертификаты) центра сертификации (CA) SSL.

Если файл существует, будет проверено, что сертификат сервера подписан одним из указанных центров сертификации.

connect_params

словарь

добавлено в community.postgresql 2.3.0

Любые дополнительные параметры, передаваемые в libpg.

Эти параметры имеют более высокий приоритет.

По умолчанию: {}

fail_on_role

логическое значение

Если true, завершить работу с ошибкой, если роль reassign_owned_by не существует. В противном случае вывести предупреждение и продолжить работу.

Взаимоисключающий параметр с obj_name и obj_type.

Варианты:

  • false
  • true ← (по умолчанию)

login_db

псевдонимы: db

строка

Имя базы данных для подключения.

Псевдоним db устарел и будет удалён в версии 5.0.0.

login_host

псевдонимы: host

строка

Узел, на котором работает база данных.

Если при использовании localhost возникают проблемы с подключением, попробуйте вместо него использовать 127.0.0.1.

По умолчанию: ""

login_password

строка

Пароль, который модуль должен использовать для создания сеанса PostgreSQL.

По умолчанию: ""

login_port

псевдонимы: port

целое число

Порт базы данных для подключения.

Псевдоним port устарел и будет удалён в следующем основном выпуске. Вместо него используйте login_port.

По умолчанию: 5432

login_unix_socket

псевдонимы: unix_socket

строка

Путь к доменному сокету Unix для локальных подключений.

По умолчанию: ""

login_user

псевдонимы: login

строка

Имя пользователя, которое модуль должен использовать для создания сеанса PostgreSQL.

По умолчанию: "postgres"

new_owner

строка / обязательный

Роль (пользователь/группа), которую следует назначить владельцем obj_name.

obj_name

строка

Имя объекта базы данных, владельца которого нужно изменить.

Взаимоисключающий параметр с reassign_owned_by.

obj_type

псевдонимы: type

строка

Тип объекта базы данных.

Взаимоисключающий параметр с reassign_owned_by.

obj_type=matview доступен начиная с PostgreSQL 9.3.

obj_type=event_trigger, obj_type=procedure, obj_type=publication, obj_type=statistics и obj_type=routine доступны начиная с PostgreSQL 11.

Варианты:

  • "aggregate"
  • "collation"
  • "conversion"
  • "database"
  • "domain"
  • "event_trigger"
  • "foreign_data_wrapper"
  • "foreign_table"
  • "function"
  • "language"
  • "large_object"
  • "matview"
  • "procedure"
  • "publication"
  • "routine"
  • "schema"
  • "sequence"
  • "server"
  • "statistics"
  • "table"
  • "tablespace"
  • "text_search_configuration"
  • "text_search_dictionary"
  • "type"
  • "view"

reassign_owned_by

список / элементы=строка

Внимание: владельцы всех объектов в указанной db, принадлежащих этой роли (ролям), будут заменены на new_owner.

Команду REASSIGN OWNED часто используют при подготовке к удалению одной или нескольких ролей.

Команда REASSIGN OWNED не затрагивает объекты в других базах данных.

Выполните эту команду в каждой базе данных, содержащей объекты, принадлежащие удаляемой роли.

Если роль (роли) существует, всегда возвращается changed True.

Нельзя переназначить владельцев объектов, необходимых для работы системы баз данных.

Взаимоисключающий параметр с obj_type.

session_role

строка

После подключения переключиться на session_role. Указанная session_role должна быть ролью, участником которой является текущий login_user.

Проверка разрешений для команд SQL выполняется так, как если бы изначально вход был выполнен от имени session_role.

ssl_cert

путь

добавлено в community.postgresql 2.4.0

Указывает имя файла клиентского сертификата SSL.

ssl_key

путь

добавлено в community.postgresql 2.4.0

Указывает расположение секретного ключа, используемого для клиентского сертификата.

ssl_mode

строка

Определяет, будет ли устанавливаться защищённое SSL-подключение TCP/IP к серверу и какой приоритет оно получит.

Дополнительные сведения о режимах см. по адресу https://www.postgresql.org/docs/current/static/libpq-ssl.html.

Значение по умолчанию prefer соответствует значению по умолчанию libpq.

Варианты:

  • "allow"
  • "disable"
  • "prefer" ← (по умолчанию)
  • "require"
  • "verify-ca"
  • "verify-full"

trust_input

логическое значение

добавлено в community.postgresql 0.2.0

Если false, проверить, не являются ли значения параметров new_owner, obj_name, reassign_owned_by, session_role потенциально опасными.

Использовать false имеет смысл только в том случае, если через параметры возможны SQL-инъекции.

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Модуль может работать в режиме check_mode и возвращать прогнозируемое состояние changed, не изменяя целевую систему.

Примечания

Примечание

  • Перегрузка функций не поддерживается, поэтому, если obj_type равен aggregate, function, routine или procedure, obj_name считается единственным объектом этого типа с таким именем.
  • Несмотря на то, что перегрузка функций не поддерживается, для obj_type=aggregate параметр obj_name должен также содержать сигнатуру агрегатной функции, поскольку этого требует синтаксис SQL.
  • new_owner должен быть суперпользователем, если obj_type равен event_type или foreign_data_wrapper.
  • Для управления владельцами подписок используйте модуль community.postgresql.postgresql_subscription.
  • Предполагается, что при аутентификации вы входите в систему или переключаетесь с помощью sudo на учётную запись postgres на узле.
  • Чтобы избежать ошибки «Peer authentication failed for user postgres», используйте пользователя postgres в качестве become_user.
  • Этот модуль использует psycopg — адаптер Python для баз данных PostgreSQL. Перед использованием модуля необходимо убедиться, что на узле установлен psycopg2 >= 2.5.1 или psycopg3 >= 3.1.8.
  • Если удалённый узел является сервером PostgreSQL (что обычно бывает по умолчанию), PostgreSQL также должен быть установлен на удалённом узле.
  • Для систем на базе Ubuntu перед использованием этого модуля установите на удалённом узле пакеты postgresql, libpq-dev и python3-psycopg2.

См. также

См. также

community.postgresql.postgresql_user

Создание, изменение или удаление пользователя (роли) в экземпляре сервера PostgreSQL.

community.postgresql.postgresql_privs

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

community.postgresql.postgresql_membership

Добавление ролей PostgreSQL в группы или удаление их из групп.

community.postgresql.postgresql_subscription

Добавление, обновление или удаление подписки PostgreSQL.

Справочник по команде PostgreSQL REASSIGN OWNED

Полный справочник по документации команды PostgreSQL REASSIGN OWNED.

Примеры

# Set owner as alice for function myfunc in database bar by ansible ad-hoc command:
# ansible -m postgresql_owner -a "db=bar new_owner=alice obj_name=myfunc obj_type=function"

- name: The same as above by playbook
  community.postgresql.postgresql_owner:
    login_db: bar
    new_owner: alice
    obj_name: myfunc
    obj_type: function

- name: Set owner as bob for table acme in database bar
  community.postgresql.postgresql_owner:
    login_db: bar
    new_owner: bob
    obj_name: acme
    obj_type: table

- name: Set owner as alice for view test_view in database bar
  community.postgresql.postgresql_owner:
    login_db: bar
    new_owner: alice
    obj_name: test_view
    obj_type: view

- name: Set owner as bob for tablespace ssd in database foo
  community.postgresql.postgresql_owner:
    login_db: foo
    new_owner: bob
    obj_name: ssd
    obj_type: tablespace

- name: Reassign all databases owned by bob to alice and all objects in database bar owned by bob to alice
  community.postgresql.postgresql_owner:
    login_db: bar
    new_owner: alice
    reassign_owned_by: bob

- name: Reassign all databases owned by bob or bill to alice and all objects in database bar owned by bob or bill to alice
  community.postgresql.postgresql_owner:
    login_db: bar
    new_owner: alice
    reassign_owned_by:
    - bob
    - bill

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

queries

строка

Список выполненных запросов.

Возвращается: при успехе

Пример: "['REASSIGN OWNED BY \"bob\" TO \"alice\"']"

Авторы

  • Andrew Klychkov (@Andersson007)
  • Daniele Giudice (@RealGreenDragon)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Сообщить о проблеме
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/postgresql/postgresql_owner_module.html

Spec-Zone.ru

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