如何禁止非超级用户查看 postgresql 服务器中的其他用户?
前任。如果当前登录的用户不是超级用户,则结果来自
从 pg_roles 中选择 *;
或者
\du
应该只有行与他的角色
如何禁止非超级用户查看 postgresql 服务器中的其他用户?
前任。如果当前登录的用户不是超级用户,则结果来自
从 pg_roles 中选择 *;
或者
\du
应该只有行与他的角色
您可以撤销对系统目录中身份验证 ID 表的访问权限:
REVOKE SELECT ON pg_catalog.pg_authid FROM public;
REVOKE SELECT ON pg_catalog.pg_auth_members FROM public;
请注意,撤销访问权限pg_roles
是不够的,因为pg_roles
这只是一个视图,pg_authid
手动运行视图查询或使用相同查询定义新视图很简单。information_schema
视图也可以直接使用,pg_authid
并且不受撤销对pg_roles
. pg_roles
如果您已撤销对pg_authid
.
请注意,撤销对全局表的访问仍然是针对每个数据库的操作。
撤销对系统目录的访问可能会产生副作用,包括:
并且通常不被认为是支持的。
revoke select on pg_roles from public;