如何更改PostgreSql数据库的所有者?

How to change owner of PostgreSql database?

我需要更改PostgreSql数据库的所有者。

如何在phppgadmin中更改PostgreSql数据库的所有者?


1
ALTER DATABASE name OWNER TO new_owner;

有关更多详细信息,请参阅Postgresql手册中的相关条目。


Frank Heikens的回答只会更新数据库所有权。 通常,您还希望更新包含对象(包括表)的所有权。 从Postgres 8.2开始,REASSIGN OWNED可用于简化此任务。

首先,连接到管理数据库并更新数据库所有权:

1
2
psql
postgres=# REASSIGN OWNED BY old_name TO new_name;

这是Frank的答案中提供的ALTER DATABASE命令的全局等效命令,但它不会更新特定的DB,而是更改'old_name'拥有的所有DB的所有权。

下一步是更新每个数据库的表所有权:

1
2
psql old_name_db
old_name_db=# REASSIGN OWNED BY old_name TO new_name;

必须在'old_name'拥有的每个DB上执行此操作。 该命令将更新数据库中所有表的所有权。