Модуль community.postgresql.postgresql_owner — Изменение владельца объекта базы данных PostgreSQL
Примечание
Этот модуль входит в коллекцию community.postgresql (версия 3.6.1).
У вас, возможно, уже установлена эта коллекция, если вы используете пакет 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. Эти параметры имеют приоритет. По умолчанию: |
db псевдонимы: login_db строка | Имя базы данных для подключения. |
fail_on_role логическое значение | Если Взаимоисключающие параметры с obj_name и obj_type. Варианты:
|
login_host псевдонимы: host строка | Хост, на котором работает база данных. Если возникают проблемы с подключением при использовании По умолчанию: |
login_password строка | Пароль, который должен использовать этот модуль для установления сеанса PostgreSQL. По умолчанию: |
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. Варианты:
|
port псевдонимы: login_port целое число | Порт базы данных для подключения. По умолчанию: |
reassign_owned_by список / элементы=строка | Внимание - владение всеми объектами в указанной db, принадлежащими этой роли(ям), будет переназначено new_owner. Часто используется для подготовки к удалению одной или нескольких ролей. НЕ затрагивает объекты в других базах данных. Выполняйте эту команду в каждой базе данных, содержащей объекты, принадлежащие роли, которая должна быть удалена. Если роль(и) существует, всегда возвращает changed True. Нельзя переназначить владение объектами, которые требуются системе базы данных. Взаимоисключающие параметры с |
session_role строка | Переключиться на session_role после подключения. Указанная session_role должна быть ролью, членом которой является текущий login_user. Проверка прав для SQL-команд выполняется так, как будто бы session_role была той, которая первоначально вошла в систему. |
ssl_cert путь добавлен в community.postgresql 2.4.0 | Указывает имя файла клиентского SSL-сертификата. |
ssl_key path added in community.postgresql 2.4.0 | Указывает расположение секретного ключа, используемого для сертификата клиента. |
ssl_mode string | Определяет, будет ли и с каким приоритетом устанавливаться защищенное SSL TCP/IP соединение с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. По умолчанию Варианты:
|
trust_input boolean added in community.postgresql 0.2.0 | Если Использование Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме check_mode и предсказывать результат изменений без модификации целевого объекта. |
Примечания
Примечание
- Перегрузка функций не поддерживается, поэтому при obj_type равном
aggregate,function,routine, илиprocedureobj_name считается единственным объектом того же типа с этим именем. - Несмотря на то, что перегрузка функций не поддерживается, при obj_type=aggregate obj_name должен также содержать подпись агрегата, так как это необходимо для синтаксиса SQL.
-
new_owner должен быть суперпользователем, если obj_type равен
event_typeилиforeign_data_wrapper. - Для управления собственностью на подписки используйте модуль
community.postgresql.postgresql_subscription. - По умолчанию предполагается, что вы входите в систему или используете sudo с учетной записью
postgresна хосте. - Чтобы избежать ошибки «Ошибка проверки подлинности peer для пользователя 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:
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:
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:
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:
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:
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:
db: bar
new_owner: alice
reassign_owned_by:
- bob
- bill
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для этого модуля:
Ключ | Описание |
|---|---|
queries string | Список выполненных запросов. Возвращается: успех Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/postgresql/postgresql_owner_module.html