我是否需要将 ALL 授予 PostgreSQL 9.3 数据库中 table 的所有者?

Do I need to GRANT ALL to the OWNER of a table in a PostgreSQL 9.3 Database?

查看 pgAdmin 中的一些 table,我可以看到 table 定义包含以下语句

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

同数据库中的其他table省略了第二个GRANT ALL语句,我怀疑它是多余的,因为user_name已经是[的OWNER =15=].

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

谢谢

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

所有者默认拥有 table 的全部权利,请注意他们也可以授予自己的 table 权利。这独立于授予 public 的任何权利。参见:

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=>

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