我需要更改PostgreSql数据库的所有者。
如何在phppgadmin更改PostgreSql数据库的所有者?
ALTER DATABASE name OWNER TO new_owner;
更多细节参见Postgresql手册中关于此的条目。
Frank Heikens的回答只会更新数据库所有权。通常,您还希望更新所包含对象(包括表)的所有权。从Postgres 8.2开始,重新分配所有可用来简化这个任务。
重要的编辑!
当原始角色是postgres时,永远不要使用REASSIGN OWNED,这可能会破坏你的整个DB实例。该命令将所有对象更新为新的所有者,包括系统资源(postgres0、postgres1等)。
postgres
REASSIGN OWNED
首先,连接到管理数据库并更新数据库所有权:
psql postgres=# REASSIGN OWNED BY old_name TO new_name;
这是Frank回答中提供的ALTER DATABASE命令的全局等价,但它不是更新特定的DB,而是更改'old_name'拥有的所有DB的所有权。
ALTER DATABASE
下一步是更新每个数据库的表所有权:
psql old_name_db old_name_db=# REASSIGN OWNED BY old_name TO new_name;
这必须在'old_name'拥有的每个DB上执行。该命令将更新DB中所有表的所有权。