通过角色为 PostgreSQL 中的用户创建

Posted

技术标签:

【中文标题】通过角色为 PostgreSQL 中的用户创建【英文标题】:CREATEDB through a ROLE for a User in PostgreSQL 【发布时间】:2011-03-21 13:31:14 【问题描述】:

我创建了一个名为 Admin 的 ROLE,并授予了它所有访问权限(包括 CREATEDB)。我创建了一个用户 ekekakos,他是管理员角色的成员并从中继承。当我尝试使用 ekekakos 创建新数据库时,我收到以下消息: 错误。创建数据库的权限被拒绝。 当我为用户 ekekakos 启用 CAN CREATE DB 选项时,将创建数据库。 为什么用户不具有 Admin 角色的特权?

谢谢

【问题讨论】:

【参考方案1】:

摘自docs:

角色属性 LOGIN、SUPERUSER、CREATEDB 和 CREATEROLE 可以被认为是特殊权限,但它们永远不会像数据库对象的普通权限那样被继承。您实际上必须将 SET ROLE 设置为具有这些属性之一的特定角色才能使用该属性。

【讨论】:

以上是关于通过角色为 PostgreSQL 中的用户创建的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL用户角色配置

PostgreSQL之用户角色权限管理

PostgreSQL之用户角色权限管理

为啥 PostgreSQL 中的新用户可以连接到所有数据库?

PostgreSQL角色和权限

在 Postgresql 中创建基于角色的身份验证系统