将“ postgres”用户所有权更改为另一个用户

时间:2019-12-11 15:50:48

标签: database postgresql ownership

我正在使用PostgreSQL 9.5.19。

我想更改某些表的所有者。所有这些表都位于my_db模式的同一数据库public中。

我已阅读帖子Modify OWNER on all tables simultaneously in PostgreSQL

由于此帖子,该操作成功但部分成功。 该表的大部分由postgres用户拥有,而不是new_user用户。

我尝试手动更改所有者,但失败。

1 个答案:

答案 0 :(得分:0)

如果您是超级用户,则可以更改postgres拥有的表的所有权。

但是您将无法REASSIGN OWNED,因为postgres必须拥有系统对象。

也许您可以使用psql的{​​{1}}:

\gexec

您可以填写适当的SELECT format('ALTER TABLE %I SET OWNER = willi;', table_name) FROM information_schema.tables WHERE ... \gexec 条件。