【问题标题】:Do I need to GRANT ALL to the OWNER of a table in a PostgreSQL 9.3 Database?我需要 GRANT ALL 给 PostgreSQL 9.3 数据库中表的所有者吗?
【发布时间】:2016-09-08 01:34:02
【问题描述】:

查看pgAdmin中的一些表,我可以看到具有以下语句的表定义

ALTER TABLE table_name
  OWNER TO user_name;
GRANT ALL ON TABLE table_name TO user_name;

同一数据库中的其他表省略了第二条GRANT ALL 语句,我怀疑它是多余的,因为user_name 已经是table_nameOWNER

那么,在这种情况下,GRANT ALL 是多余的吗?如果是,我是否可以删除它的定义(从table_name > 属性 > 权限选项卡)?

谢谢

【问题讨论】:

    标签: postgresql postgresql-9.3 privileges user-permissions


    【解决方案1】:

    可能不会,但请参见下文。

    默认情况下,所有者对表拥有完全权限,请注意,他们也可以授予对自己的表的权限。这与赋予公众的任何权利无关。见:

    chris=> create table footest(id int);
    CREATE TABLE
    chris=> revoke all on footest from public;
    REVOKE
    chris=> insert into footest values (1);
    INSERT 0 1
    chris=> revoke all on footest from chris;
    REVOKE
    chris=> insert into footest values (1);
    ERROR:  permission denied for relation footest
    chris=> grant all on footest to chris;
    GRANT
    chris=>
    

    因此,除非您已经撤销了您不需要授予它们的权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      • 2011-01-02
      • 2016-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多