超级用户不允许登录


32

我使用以下命令创建了超级用户门户

create role portal with superuser password 'portal'

当我尝试使用门户网站用户登录postgres时,在Rails中收到以下错误。

FATAL:  role "portal" is not permitted to log in

我不知道发生了什么事。

当然,我可以使用login命令更改用户以使门户网站用户能够登录。我想了解为什么超级用户无法登录。


2
因为role,永远不能登录时,就应该使用create user,如果你想要的东西,可以登录。
a_horse_with_no_name

1
@a_horse_with_no_name准确地说,是有角色和用户之间没有区别,但之间有CREATE ROLECREATE USER,看到克雷格的答案。
dezso 2014年

Answers:


57

您没有指定LOGIN权限:

ALTER ROLE portal WITH LOGIN;

如果您使用CREATE USER而不是,则自动授予CREATE ROLELOGIN权限;否则,您必须WITHCREATE语句的子句中指定它。

超级用户没有固有的LOGIN权利;仍将为此权限的超级用户执行权限检查。这样做的原因是,您可以拥有一个超级用户角色SET ROLE,但不能直接连接。


4
CREATE ROLE 'portal' WITH LOGIN SUPERUSER PASSWORD 'portal';

欢迎光临本站!您的答案缺乏解释-如果环顾四周,好的答案不仅会告诉您什么,而且还会这样做的原因。考虑到这一点,您的答案对Craig的答案有什么帮助?
dezso
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.