数据库包含 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版本恢复
最佳答案
这是不可能的,因为系统对象必须由 bootstrap super 用户(在您的情况下为 postgres
)拥有。
你不应该弄乱系统对象。
如果您有 postgres
拥有的非系统对象,请识别它们并一一更改所有权。
如果只是名字打扰了你,你可以将postgres
重命名为db_owner
,但我认为这不是你想要的。
关于postgresql - 如何将所有用户对象分配给 db_owner 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51760748/