community.general.postgresql_owner – Изменение владельца объекта базы данных PostgreSQL
Примечание
Этот плагин является частью коллекции community.general (версия 1.3.2).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в книге задач укажите: community.general.postgresql_owner.
Описание
- Изменение владельца объекта базы данных PostgreSQL.
- Также позволяет переназначить владение объектами базы данных, принадлежащими роли базы данных, другой роли.
Требования
Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров сертификации. псевдонимы: ssl_rootcert | |
| db строка | Имя базы данных для подключения. псевдонимы: login_db | |
| fail_on_role логическое |
| Если yes, прервать выполнение, когда роль reassign_owned_by не существует. В противном случае просто вывести предупреждение и продолжить.Взаимоисключающие с obj_name и obj_type. |
| login_host строка | Хост, на котором работает база данных. | |
| login_password строка | Пароль, используемый для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix доменной области для локальных подключений. | |
| login_user строка | Значение по умолчанию: "postgres" | Имя пользователя, используемое для аутентификации. |
| new_owner строка / обязательный | Роль (пользователь/группа) для установки владельца obj_name. | |
| obj_name строка | Имя объекта базы данных, для которого необходимо изменить владение. Взаимоисключающие с reassign_owned_by. | |
| obj_type строка |
| Тип объекта базы данных. Взаимоисключающие с reassign_owned_by. псевдонимы: тип |
| port целое число | Значение по умолчанию: 5432 | Порт базы данных для подключения. псевдонимы: login_port |
| reassign_owned_by список / элементы=строка | Список имён ролей. Владение всеми объектами в текущей базе данных и всеми общими объектами (базы данных, пространства таблиц), принадлежащими этой роли(ям), будет переназначено владельцу. Обратите внимание — переназначает все объекты, принадлежащие этой роли(ям), в базе данных db! Если роль(и) существует, всегда возвращает True. Невозможно переназначить владение объектами, необходимыми для работы системы базы данных. Взаимоисключающие с obj_type. | |
| session_role строка | Переключение на роль session_role после подключения. Указанная роль session_role должна быть ролью, членом которой является текущий login_user. Проверка разрешений для команд SQL выполняется так, как будто роль session_role была той, которая первоначально вошла в систему. | |
| ssl_mode строка |
| Определяет, будет ли и с каким приоритетом устанавливаться защищенное подключение SSL TCP/IP с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. Значение по умолчанию prefer соответствует значению по умолчанию libpq. |
| trust_input логическое добавлено в 0.2.0 community.general |
| Если no, проверить, являются ли значения параметров new_owner, obj_name, reassign_owned_by, session_role потенциально опасными.Имеет смысл использовать no только тогда, когда возможны SQL-инъекции через параметры. |
Примечания
Примечание
- Аутентификация по умолчанию предполагает, что вы входите в систему как или используете sudo для учетной записи
postgresна хосте. - Чтобы избежать ошибки «Ошибка проверки подлинности клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует psycopg2, адаптер базы данных Python PostgreSQL. Необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля.
- Если удаленный хост является сервером PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удаленном хосте.
- Для систем на базе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удаленном хосте перед использованием этого модуля.
- Для параметра ca_cert требуется, как минимум, версия Postgres 8.4 и версия psycopg2 2.4.3.
См. также
См. также
- community.general.postgresql_user
-
Официальная документация модуля community.general.postgresql_user.
- community.general.postgresql_privs
-
Официальная документация модуля community.general.postgresql_privs.
- community.general.postgresql_membership
-
Официальная документация модуля community.general.postgresql_membership.
- Справочник команд 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.general.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.general.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.general.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.general.postgresql_owner:
db: foo
new_owner: bob
obj_name: ssd
obj_type: tablespace
- name: Reassign all object in database bar owned by bob to alice
community.general.postgresql_owner:
db: bar
new_owner: alice
reassign_owned_by: bob
- name: Reassign all object in database bar owned by bob and bill to alice
community.general.postgresql_owner:
db: bar
new_owner: alice
reassign_owned_by:
- bob
- bill
Возвращаемые значения
Общие возвращаемые значения описаны в здесь, ниже приведены поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| queries строка | всегда | Список выполненных запросов. Пример: ['REASSIGN OWNED BY "bob" TO "alice"'] |
Авторы
- Андрей Клычков (@Andersson007)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/postgresql_owner_module.html