代码之家  ›  专栏  ›  技术社区  ›  Michal Charemza

禁止用户的所有者授予该表

  •  0
  • Michal Charemza  · 技术社区  · 7 年前

    我试图允许数据库用户能够更改/删除(某些)表,但是 不 授予他们特权。这可能吗?

    看起来他们应该是桌子的主人,但是 https://www.postgresql.org/docs/current/sql-grant.html

    删除对象或以任何方式更改其定义的权利不被视为可授予的特权;它是所有者固有的,不能授予或撤销。(但是,通过授予或取消拥有该对象的角色的成员资格也可以获得类似的效果;请参见下文。)所有者也隐式地拥有该对象的所有授予选项。

    听起来这是不可能的。然而,这绝对是事实吗?比如说,有没有办法用触发器使某些拨款失败?

    0 回复  |  直到 7 年前
        1
  •  1
  •   Laurenz Albe    7 年前

    是的,只有表的所有者或超级用户可以 ALTER DROP 它,这些用户可以 GRANT 桌子上的特权。

    您唯一的选择是创建 event trigger 火在燃烧 并在应该禁止的位置为表抛出错误。