Модуль 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 логическое значение | Если Взаимоисключающий параметр с obj_name и obj_type. Варианты:
|
login_db псевдонимы: db строка | Имя базы данных для подключения. Псевдоним |
login_host псевдонимы: host строка | Узел, на котором работает база данных. Если при использовании По умолчанию: |
login_password строка | Пароль, который модуль должен использовать для создания сеанса PostgreSQL. По умолчанию: |
login_port псевдонимы: port целое число | Порт базы данных для подключения. Псевдоним По умолчанию: |
login_unix_socket псевдонимы: unix_socket строка | Путь к доменному сокету Unix для локальных подключений. По умолчанию: |
login_user псевдонимы: login строка | Имя пользователя, которое модуль должен использовать для создания сеанса PostgreSQL. По умолчанию: |
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. Варианты:
|
reassign_owned_by список / элементы=строка | Внимание: владельцы всех объектов в указанной db, принадлежащих этой роли (ролям), будут заменены на new_owner. Команду REASSIGN OWNED часто используют при подготовке к удалению одной или нескольких ролей. Команда REASSIGN OWNED не затрагивает объекты в других базах данных. Выполните эту команду в каждой базе данных, содержащей объекты, принадлежащие удаляемой роли. Если роль (роли) существует, всегда возвращается changed True. Нельзя переназначить владельцев объектов, необходимых для работы системы баз данных. Взаимоисключающий параметр с |
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. Значение по умолчанию Варианты:
|
trust_input логическое значение добавлено в community.postgresql 0.2.0 | Если Использовать Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
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 строка | Список выполненных запросов. Возвращается: при успехе Пример: |
Ссылки на коллекцию
© 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