如何获得PostgreSQL创建角色的权限?

问题描述 投票:0回答:3

当我尝试创建新用户或角色时,我得到

[42501] 错误:创建角色的权限被拒绝

我正在执行

CREATE user test with PASSWORD 'xyz1234reee'

我以超级用户身份登录

database postgresql permissions roles privileges
3个回答
1
投票

以超级用户身份登录。

也许您位于托管数据库上,他们为您提供了像

rds_superuser
这样的用户。这听起来像是超级用户,但事实并非如此。


0
投票

您需要以超级用户 postgees 或任何其他有权创建角色的用户身份登录。

以超级用户身份登录后,您可以创建所需的角色,也可以向 postgres 中的用户授予 createrole 权限。

如果任何用户没有创建角色的权限,则会抛出错误:权限被拒绝创建角色。

分配创建角色的权限:

ALTER USER user_name CREATEROLE;

现在,您可以使用上述用户登录并创建角色。


0
投票

例如,您可以创建具有

john
权限的用户(角色)
CREATEROLE
,或者为用户(角色)
CREATEROLE
添加
john
权限,如下所示。 *您需要使用任何超级用户登录,例如
postgres
,您可以省略
WITH
,这是可选的:

CREATE ROLE john WITH LOGIN PASSWORD 'apple' CREATEROLE;

或者:

ALTER ROLE john WITH CREATEROLE;

然后,您可以通过使用

david
登录来创建、更改和删除用户(角色)
john
,如下所示。 *注意,普通用户无法创建超级用户,只有超级用户才能创建超级用户:

CREATE ROLE david WITH LOGIN PASSWORD 'orange';
ALTER ROLE david;
DROP ROLE david;
© www.soinside.com 2019 - 2024. All rights reserved.