在 Postgres 中安全删除用户
Safely drop a user in 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]
有点吓到我了。如何在不影响数据库中的数据和其他对象的情况下安全地删除用户?
用相应的 REVOKE 撤销您的每个 GRANT。
It kinda scares me. How can I safely drop a user without affecting the data and other objects in database?
如果您认为 REVOKE 是“影响对象”,那么您不能在不影响对象的情况下删除用户。为什么这会吓到你?正如你所见,系统不会让你隐式这样做,那有什么好怕的呢?
我对 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]
有点吓到我了。如何在不影响数据库中的数据和其他对象的情况下安全地删除用户?
用相应的 REVOKE 撤销您的每个 GRANT。
It kinda scares me. How can I safely drop a user without affecting the data and other objects in database?
如果您认为 REVOKE 是“影响对象”,那么您不能在不影响对象的情况下删除用户。为什么这会吓到你?正如你所见,系统不会让你隐式这样做,那有什么好怕的呢?