如何禁止非超级用户查看 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;