postgresql - 在 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。
这让我有点害怕。如何在不影响数据库中的数据和其他对象的情况下安全地删除用户?
如果您认为 REVOKE 是“影响对象”,那么您不能在不影响对象的情况下删除用户。为什么这会吓到你?如您所见,系统不会让您隐式执行此操作,那有什么好害怕的呢?
推荐阅读
- django - Django AdminDateWidget 仅在表单上出现一次
- ubuntu - VMWare Workstation Ubuntu 18.04 - Minikube:创建虚拟机时出错:
- r - R 中的哪个采样函数有助于提供所需的采样模式?
- php - fgetcsv() 在本地主机上工作,但在服务器上时出错
- java - 读取文本文件时跳过一定数量的行 - BufferedReader Java
- javascript - 偏移顶部 -150px 期间的滚动顶部跳转问题
- python - 带有 1000 分隔符的 Python 编号
- node.js - Microsoft JScript 错误:节点 js 中的语法错误 800A03EA
- java - 如何在java中找到带有注册表项的软件路径?
- c# - 如何使 Windows 服务难以停止?