停用postgres用户帐户

Kai*_*Kai 4 sql postgresql

有没有办法通过SQL语句停用postgres用户帐户?

我想阻止用户使用他的数据库,但不删除用户或他的数据库.

And*_*rew 13

ALTER USER someone WITH NOLOGIN;如果您在同一个后端有多个数据库并且想要完全阻止用户,您可能还会考虑哪个可能是正确的解决方案。

要锁定帐户:

# Lock an account
ALTER USER someone WITH NOLOGIN;
Run Code Online (Sandbox Code Playgroud)

要解锁帐户:

# Un-lock an account
ALTER USER someone WITH LOGIN;
Run Code Online (Sandbox Code Playgroud)

检查帐户是否被锁定:

select rolcanlogin from pg_roles where rolname='database_user';

OUTPUT:
rolcanlogin
-------------
 f
(1 row)

f = false # Can not login
t = true # Can login
Run Code Online (Sandbox Code Playgroud)


Spr*_*dzy 6

看一下REVOKE命令.

为了使用户能够连接到数据库,他已被授予CONNECT权限.只需撤消此权限,他将无法使用此数据库.