How to change owner of PostgreSql database?
我需要更改PostgreSql数据库的所有者。
如何在phppgadmin中更改PostgreSql数据库的所有者?
1
| ALTER DATABASE name OWNER TO new_owner; |
有关更多详细信息,请参阅Postgresql手册中的相关条目。
-
为了完整起见,这里是手册的一部分,其中记录了这一点:postgresql.org/docs/current/static/sql-alterdatabase.html
-
这个命令确实删除了我的数据库......很好
-
@ mArtinko5MB:这是不可能的,ALTER没有DROP数据库。
-
@FrankHeikens确实说,这可能是事实造成的,表不是空的。因此,在该表上的每次更改后,表都被删除(特别是使用alter own permission)。谢谢你的答复
-
@ mArtinko5MB:也不可能,ALTER TABLE没有DROP表。向我们展示您的SQL,在您的陈述中严重破坏了某些内容。
-
请注意,数据库中的所有表和序列仍将分配给原始所有者。
-
ERROR: must be member of role ... =不使用RDS
-
为了更清晰;术语"名称"是要更改其属性的数据库的名称。
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上执行此操作。 该命令将更新数据库中所有表的所有权。
-
太好了! ......除非主人postgres,否则他自己......很难理解。
-
问题是它不会更改单个数据库的所有者,但它会替换新的所有者。