我需要更改PostgreSql数据库的所有者。
如何在phppgadmin更改PostgreSql数据库的所有者?
我需要更改PostgreSql数据库的所有者。
如何在phppgadmin更改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中所有表的所有权。