如何更改 PostgreSQL 数据库的所有者?
如何在 phppgadmin
中更改 PostgreSQL 数据库的所有权?
How can I change ownership of a PostgreSQL database in phppgadmin
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何在 phppgadmin
中更改 PostgreSQL 数据库的所有权?
How can I change ownership of a PostgreSQL database in phppgadmin
?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
有关更多详细信息,请参阅 PostgreSQL 手册中的条目。
See PostgreSQL manual's entry on this for more details.
Frank Heikens 的回答只会更新数据库所有权。通常,您还希望更新所包含对象(包括表)的所有权。从 Postgres 8.2 开始,REASSIGN OWNED 可用于简化这个任务。
重要编辑!
当原始角色为
postgres
时,切勿使用REASSIGN OWNED
,这可能会损坏您的整个数据库实例。该命令将使用新所有者更新所有对象,包括系统资源(postgres0、postgres1 等)。首先,连接到管理数据库并更新数据库所有权:
这是提供的 ALTER DATABASE 命令的全局等效项在弗兰克的回答中,但它不是更新特定的数据库,而是更改“old_name”拥有的所有数据库的所有权。
下一步是更新每个数据库的表所有权:
必须在“old_name”拥有的每个数据库上执行此操作。该命令将更新数据库中所有表的所有权。
Frank Heikens answer will only update database ownership. Often, you also want to update ownership of contained objects (including tables). Starting with Postgres 8.2, REASSIGN OWNED is available to simplify this task.
IMPORTANT EDIT!
Never use
REASSIGN OWNED
when the original role ispostgres
, this could damage your entire DB instance. The command will update all objects with a new owner, including system resources (postgres0, postgres1, etc.)First, connect to admin database and update DB ownership:
This is a global equivalent of
ALTER DATABASE
command provided in Frank's answer, but instead of updating a particular DB, it change ownership of all DBs owned by 'old_name'.The next step is to update tables ownership for each database:
This must be performed on each DB owned by 'old_name'. The command will update ownership of all tables in the DB.
对弗兰克提出的答案稍作修改。虽然查询是正确的,但可以在不对所有权进行任何更改的情况下执行查询。
当我们以 olduser 身份登录并在终端中运行 psql 并且不指定数据库时,就会发生这种情况。
相反,在使用旧用户登录后..
使用 psql 键入 dbname
终端提示符将会改变。运行命令后,您将看到输出为“ALTER DATABASE”。您可以使用“\list”命令验证所有权
A slight change to answer proposed by Frank. While the query is correct, one may execute the query without making any changes to the ownership.
This happens when we login as the olduser and run psql in the terminal and do not specify the database.
Instead , after logging with older user..
type the dbname with psql
Terminal prompt will change. After running the command, you will see the output as "ALTER DATABASE". You can verify the ownership with '\list' command