如何将所有用户对象分配给db_owner角色

时间:2018-08-09 07:05:31

标签: postgresql

数据库包含postgres拥有的用户对象。 要求数据库中的所有用户对象均应具有db_owner角色。

我试图将他们重新分配给db_owner角色

REASSIGN OWNED BY postgres TO db_owner

但出现错误

ERROR:  cannot reassign ownership of objects owned by role postgres because they are required by the database system

如何将所有用户对象分配给db_owner角色?

使用

“ x86_64-pc-linux-gnu上的PostgreSQL 10.1,由gcc(Debian 6.3.0-18)6.3.0 20170516,64位编译”

数据库已从9.3版还原

1 个答案:

答案 0 :(得分:0)

这是不可能的,因为系统对象必须由 bootstrap超级用户(在您的情况下为postgres)拥有。

您不应弄乱系统对象。

如果您有postgres拥有的非系统对象,请识别它们并逐一更改所有权。

如果只是打扰您的名字,您可以将postgres重命名为db_owner,但我认为这不是您想要的。