如何仅授予特定用户访问数据库的权限?

时间:2019-01-07 05:09:10

标签: postgresql database-permissions

这可能是一个愚蠢的问题,我敢肯定这是我的心理模型问题。

最终,我想为一个角色设置特权,以使该角色中的任何其他角色都具有对所有当前表的CRUD访问权限,并自动为该数据库永久保留所有将来的表。但是只有那些明确添加到“小组角色”的角色。

目前尚不清楚该怎么做。

1 个答案:

答案 0 :(得分:0)

无法完全获得所需的内容,但是可以使您获得足够的距离。

使用现有表进行交易非常简单:只需撤销已在表上授予的所有特权,然后授予对您的组角色的访问权限。使这个变得容易的命令是

GRANT/REVOKE ALL
   ON ALL TABLES IN SCHEMA ... TO/FROM ...;

要处理将来的表,您必须将可能创建表的用户范围限制为几个,并且每个用户都可以运行

ALTER DEFAULT PRIVILEGES FOR ROLE creating_user
   GRANT ALL ON TABLES TO ...;

如果您无法枚举可以创建表的用户,则可以在每个CREATE语句的末尾运行事件触发器。