【问题标题】:Can't grant all privileges on schema public to a user in postgresql无法将架构上的所有权限授予 postgresql 中的用户
【发布时间】:2020-06-17 03:26:24
【问题描述】:

我尝试将所有权限授予用户,以便在公共架构中访问表 pg_largeobject:

GRANT ALL PRIVILEGES ON SCHEMA PUBLIC TO my_user ;

即使使用这个:

GRANT ALL PRIVILEGES ON TABLE PG_LARGEOBJECT TO my_user;

返回此错误:

ERROR:  permission denied for schema public

我怎样才能给这个用户权限,或者我应该使用具有超级用户权限的postgres 连接到数据库?

【问题讨论】:

    标签: postgresql schema privileges


    【解决方案1】:

    您必须是超级用户才能授予pg_largeobjects 的权限。

    但你永远不应该这样做。

    无需直接修改该系统目录,这样做会危及 PostgreSQL 数据库的完整性。

    要删除大对象,请使用

    SELECT lo_unlink(4711);
    

    这里的 4711 是你要删除的大对象的 OID。

    【讨论】:

    • 我需要删除一些插入到这个表中的大文件
    • 然后使用lo_unlink,如我的扩展答案所示。
    【解决方案2】:

    如果您已通过 GRANT 选项授予这些权限,或者您以超级用户身份授予这些权限,则您只能授予对象权限。

    【讨论】:

      猜你喜欢
      • 2015-02-05
      • 2014-04-24
      • 2020-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多