当我尝试创建新用户或角色时,我得到
[42501] 错误:创建角色的权限被拒绝
我正在执行
CREATE user test with PASSWORD 'xyz1234reee'
我以超级用户身份登录
您未以超级用户身份登录。
也许您位于托管数据库上,他们为您提供了像
rds_superuser
这样的用户。这听起来像是超级用户,但事实并非如此。
您需要以超级用户 postgees 或任何其他有权创建角色的用户身份登录。
以超级用户身份登录后,您可以创建所需的角色,也可以向 postgres 中的用户授予 createrole 权限。
如果任何用户没有创建角色的权限,则会抛出错误:权限被拒绝创建角色。
分配创建角色的权限:
ALTER USER user_name CREATEROLE;
现在,您可以使用上述用户登录并创建角色。
例如,您可以创建具有
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;