我使用以下命令创建了一个超级用户门户
create role portal with superuser password 'portal'
Run Code Online (Sandbox Code Playgroud)
当我尝试使用门户用户登录 postgres 时,我在 Rails 中收到以下错误。
FATAL: role "portal" is not permitted to log in
Run Code Online (Sandbox Code Playgroud)
我无法理解正在发生的事情。
当然,我可以使用 login 命令更改用户以启用门户用户登录。我想了解为什么超级用户无法登录。
Cra*_*ger 57
您没有指定LOGIN权限:
ALTER ROLE portal WITH LOGIN;
Run Code Online (Sandbox Code Playgroud)
如果你使用CREATE USER的不是CREATE ROLE该LOGIN权利自动授予; 否则,您必须WITH在CREATE语句的子句中指定它。
超级用户天生就没有LOGIN权利;仍会为此权限对超级用户执行权限检查。这样做的原因是您可以拥有一个可以使用的超级用户角色SET ROLE,但不能直接连接。
小智 5
CREATE ROLE 'portal' WITH LOGIN SUPERUSER PASSWORD 'portal';
Run Code Online (Sandbox Code Playgroud)