【发布时间】:2014-08-07 20:59:16
【问题描述】:
我在 Linux 上运行 PostgreSQL 9.3.2。
我有一个组角色“data_scientist”和对特定(已填充)架构的权限
grant usage on schema schemaname to data_scientist;
grant select, references, trigger
on all tables in schema schemaname
to data_scientist;
这解决了 data_scientist 使用过去表格的问题。对于我添加的未来表格
alter default privileges in schema schemaname
grant select, references on tables
to data_scientist;
不过,无论何时添加新表,其他 data_scientist 对新表的权限都会失败。
【问题讨论】:
-
stackoverflow.com/questions/10352695/… 似乎通过指定 DEFAULT PRIVILEGES 来指定对架构中创建的新对象的访问权限来回答这个问题
-
事实上这是我添加的第二部分。还是不行。
-
@mc110 记住 FOR 也很重要,因为默认权限是针对每个用户/角色的,并且默认授予发出该语句的当前用户。
-
@mlt 我不确定我理解你对 FOR 的意思,你能举例说明吗?
-
如果您在发出 alter 语句时连接到数据库时不具有角色data_scientist,那么您必须使用 for data_scientist 角色,否则默认权限将应用于仅由您用于发出 alter 语句的用户创建的新表。 This 也可能是相关的。如果 data_scientist 在创建表之前作为组角色,请确保使用
set role。我相信这个 Q 是我链接的那个的副本。
标签: sql postgresql permissions postgresql-9.3 database-permissions