停用 postgres 用户帐户

发布于 2024-10-05 00:57:49 字数 74 浏览 0 评论 0原文

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

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

Is there a way to deactivate a postgres user account via an SQL statement?

I want to prevent a user from using their database, but without deleting the user or their databases.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

↘紸啶 2024-10-12 00:57:49

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

锁定帐户:

# Lock an account
ALTER USER someone WITH NOLOGIN;

解锁帐户:

# Un-lock an account
ALTER USER someone WITH LOGIN;

检查帐户是否锁定:

select rolcanlogin from pg_roles where rolname='database_user';

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

f = false # Can not login
t = true # Can login

You might also consider ALTER USER someone WITH NOLOGIN; which is probably the right solution if you have multiple databases in the same back-end and want to block the user entirely.

To lock an account:

# Lock an account
ALTER USER someone WITH NOLOGIN;

To unlock an account:

# Un-lock an account
ALTER USER someone WITH LOGIN;

Check account is locked or not:

select rolcanlogin from pg_roles where rolname='database_user';

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

f = false # Can not login
t = true # Can login
最初的梦 2024-10-12 00:57:49

查看 REVOKE 命令。

为了让用户连接到数据库,他被授予 CONNECT 权限。
只需撤销此权限,他将无法使用此数据库。

Take a look at the REVOKE command.

In order for a user to connect to a database he has been granted the CONNECT privilege.
Just REVOKE this privilege and he won't be able to use this database.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文