【问题标题】:How to change the ownership of a table in database如何更改数据库中表的所有权
【发布时间】:2015-10-27 18:22:44
【问题描述】:

我有一个数据库 rndb 并创建了一个新表 myname_record,默认情况下它是由所有者“postgres”创建的。在我的程序中,我应该将所有者更改为“rndb”,但我错过了。现在我需要在控制台中执行此操作,所以我使用命令登录

psql=>psql -Urndb 

然后使用以下查询更改所有者

rndb=>ALTER TABLE public.myname_record OWNER to rndb;

但它是说您必须是所有者才能进行此更改。我可以理解,因为我通过 rndb 登录它给出了这个错误。但是如何实际进行此更改。

【问题讨论】:

  • 你可以检查两个用户是否有相同的授权?尝试运行 grant postgres to rndb; 并检查您的流程是否在不更改表所有权的情况下正常工作。

标签: database postgresql


【解决方案1】:

选择具有超级用户权限的角色并尝试更改表的所有者。

ALTER TABLE public.myname_record OWNER TO rndb;

【讨论】:

    【解决方案2】:

    您必须以 当前 表所有者的身份进行连接,而不是您希望将表所有权更改为的用户。因为那是postgres:

    psql -U postgres
    

    sudo -u postgres psql
    

    根据需要。

    (此外,超级用户始终可以将表所有权从任何东西更改为任何东西)。

    【讨论】:

    • 当我做同样的事情时它说:- 关系“public.myname_record”不存在
    猜你喜欢
    • 2017-01-03
    • 2021-01-14
    • 2010-12-30
    • 2011-05-17
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2016-12-31
    • 2020-03-17
    相关资源
    最近更新 更多