如何只允许特定用户访问数据库?

How to give access to a database to only specific users?

这可能是一个愚蠢的问题,我确定这是我的思维模型的问题。

最终,我想为一个角色设置权限,以便该角色中的任何其他角色都可以对所有当前表进行 CRUD 访问,并自动永久地访问该数据库的所有未来表。但只有那些明确添加到 'group role'.

中的角色

不清楚如何做到这一点。

没有办法准确得到你想要的,但你可以接近。

处理现有表非常简单:只需撤销已授予表的所有权限并授予对您的组角色的访问权限。使这变得简单的命令是

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

为了处理未来的表格,您必须将可能创建表格的用户圈子限制在少数,并且对于他们每个人 运行

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

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