Передача с помощью команды psql из postgres всего, что связано с владением базой данных и связанными объектами с использованием bash - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть база данных, которой принадлежит роль postgres.

Используя команду psql в bash, я хочу передать право собственности на базу данных и все, что в ней есть (схема, таблицы, представления)., последовательности, триггеры и т. д.) на новую роль.

У меня есть:

sudo -u postgres psql << EOF
                ALTER DATABASE ${database} OWNER TO ${role};
                GRANT ALL ON DATABASE ${database} TO ${role};
EOF

Достаточно ли этого?

1 Ответ

0 голосов
/ 24 сентября 2018

Нет, это не поможет.

Было бы неплохо, если бы вы могли использовать REASSIGN OWNED, но вы не можете сделать это с суперпользователем установки, потому что системные объекты не могут изменить владельца.

Вам нужно будет идентифицировать все объекты, право собственности на которые вы хотите изменить, и использовать ALTER ... OWNER TO ... для каждого.

...