【发布时间】:2021-09-08 02:03:00
【问题描述】:
我们有一个场景,一些用户需要超级用户权限,而其他数据库用户不需要它。所以我们创建了用户,然后创建了一个角色“SuperRole”,它有权创建角色db。
假设我默认使用 INHERIT 将用户“User1”映射到角色“User1”。创建“SuperRole”角色后,我已经跑了
GRANT superrole to user1;
之后如果我看到 \du 输出
postgres=# \du user1
List of roles
Role name | Attributes | Member of
--------------+------------------------+--------------
user1 | Create role, Create DB | {superrole}
根据文档https://www.postgresql.org/docs/11/role-membership.html,角色“成员”的权限也应该被继承。但是当我使用 user1 连接到 psql 时,我应该拥有 superrole 的权限也可以创建角色和数据库。但是,当我尝试创建数据库时,出现以下错误。
postgres=> create database test;
ERROR: permission denied to create database
创建角色时也会出现类似的错误。应该怎么做才能使超级角色的权限集也可供 user1 使用。
【问题讨论】:
标签: postgresql roles