首页 > 解决方案 > 在 Postgres 中安全删除用户

问题描述

我对 Postgress 安全主题很陌生。我使用以下命令创建用户。

CREATE USER myuser WITH PASSWORD 'PASSWORD';
GRANT CONNECT ON DATABASE "MyDB" TO myuser;
GRANT ALL PRIVILEGES ON DATABASE "MyDB" TO myuser;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO myuser;

紧接着我想删除这个用户,因为我收到了一个类似的错误:

ERROR:  role "tempuser" cannot be dropped because some objects depend on it
DETAIL:
privileges for view myView
privileges for table myTable
... [rest of views and tables]

这让我有点害怕。如何在不影响数据库中的数据和其他对象的情况下安全地删除用户?

标签: postgresqlpgadmin-4azure-database-postgresql

解决方案


用相应的 REVOKE 撤销每个 GRANT。

这让我有点害怕。如何在不影响数据库中的数据和其他对象的情况下安全地删除用户?

如果您认为 REVOKE 是“影响对象”,那么您不能在不影响对象的情况下删除用户。为什么这会吓到你?如您所见,系统不会让您隐式执行此操作,那有什么好害怕的呢?


推荐阅读