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

create role portal with superuser password 'portal'


当我尝试使用门户用户登录postgres时,在rails中出现以下错误。

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


我无法跟踪发生的事情。

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

评论

因为角色永远无法登录。如果您想要可以登录的内容,则应该使用create user。

@a_horse_with_no_name确切地说,角色和用户之间没有区别,但CREATE ROLE和CREATE USER之间没有区别,请参见Craig的答案。

#1 楼

您未指定LOGIN权限:

ALTER ROLE portal WITH LOGIN;


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

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

#2 楼

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


评论


欢迎光临本站!您的答案缺乏解释-如果环顾四周,好的答案不仅会告诉您做什么,而且还会告诉您这样做的原因。考虑到这一点,您的答案会给Craig的答案带来什么?

– dezso
2015年9月7日在8:19