gpt4 book ai didi

postgresql - 仅允许 postgres 用户列表角色

转载 作者:行者123 更新时间:2023-11-29 12:47:20 28 4
gpt4 key购买 nike

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

例如。如果当前登录的用户不是 super 用户,则结果来自

SELECT * from 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 的一个 View ,运行 View 查询是微不足道的手动或使用相同的查询定义新 View 。 information_schema View 也直接使用 pg_authid,并且不受撤销对 pg_roles 的访问的影响。如果您已撤销对 pg_authid 的访问权限,则无需撤销对 pg_roles 的访问权限。

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

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

  • 部分系统功能未按预期运行
  • JDBC 驱动程序等工具中的一些元数据操作失败
  • ...等等

并且通常认为不受支持。

关于postgresql - 仅允许 postgres 用户列表角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12999274/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com