postgresql_owner – Изменение владельца объекта базы данных PostgreSQL
Новая в версии 2.8.
Краткое описание
- Изменение владельца объекта базы данных PostgreSQL.
- Также позволяет переназначить владение объектами базы данных, принадлежащими базе данных роли, другой роли.
- Дополнительную информацию о команде REASSIGN OWNED BY см. на https://www.postgresql.org/docs/current/sql-reassign-owned.html.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- 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. Невозможно переназначить владение объектами, необходимыми для работы базы данных. Дополнительную информацию см. на https://www.postgresql.org/docs/current/sql-reassign-owned.html. Взаимоисключающие с 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. |
Примечания
Примечание
- По умолчанию аутентификация предполагает, что вы входите как пользователь или используете sudo для входа в учетную запись postgres на хосте.
- Чтобы избежать ошибки «Отказано в проверке подлинности пользователя postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля.
- Если удалённый хост является сервером PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удалённом хосте.
- Для систем на базе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удалённом хосте перед использованием этого модуля.
- По умолчанию аутентификация предполагает, что вы входите как пользователь или используете sudo для входа в учетную запись
postgresна хосте. - Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удалённый хост является сервером PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удалённом хосте. Для систем на базе Ubuntu установите пакеты
postgresql,libpq-dev, иpython-psycopg2на удалённом хосте перед использованием этого модуля. - Для параметра ca_cert требуется как минимум версия Postgres 8.4 и версия psycopg2 2.4.3.
Примеры
# 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
postgresql_owner:
db: bar
new_owner: alice
obj_name: myfunc
obj_type: function
- name: Set owner as bob for table acme in database bar
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
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
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
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
postgresql_owner:
db: bar
new_owner: alice
reassign_owned_by:
- bob
- bill
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| queries строка | всегда | Список выполненных запросов. Пример: ['REASSIGN OWNED BY "bob" TO "alice"'] |
Статус
- Гарантии обратной совместимости интерфейса этого модуля нет. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Андрей Клычков (@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.8/modules/postgresql_owner_module.html