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

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


ALTER DATABASE name OWNER TO new_owner;

更多细节请参阅Postgresql手册的条目。


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

重要的编辑!

当原始角色是postgres时,永远不要使用REASSIGN OWNED,这可能会破坏你的整个DB实例。该命令将所有对象更新为新的所有者,包括系统资源(postgres0、postgres1等)。


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

psql
postgres=# REASSIGN OWNED BY old_name TO new_name;

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

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

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

这必须在'old_name'拥有的每个DB上执行。该命令将更新DB中所有表的所有权。