只允许postgres用户列表角色[英] Allow only postgres user list roles

本文是小编为大家收集整理的关于只允许postgres用户列表角色的处理方法,想解了只允许postgres用户列表角色的问题怎么解决?只允许postgres用户列表角色问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

如何禁止非超级用户查看postgresql服务器中的其他用户?

例如.如果当前登录的用户不是超级用户,则结果来自

<块引用>

从 pg_roles 中选择 *;

<块引用>

\du

应该只有行与他的角色

推荐答案

您可以撤销对系统目录中的身份验证 IDs 表的访问权限:

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_authid 的访问权限,则无需撤销对 pg_roles 的访问权限.

请注意,撤销对全局表的访问仍然是针对每个数据库的操作.

撤销对系统目录的访问可能会产生副作用,包括:

  • 某些系统功能无法按预期工作
  • JDBC 驱动程序等工具中的一些元数据操作失败
  • ...等

并且通常不被认为是受支持的.

本文地址:https://www.itbaoku.cn/post/1764163.html