暂无图片
PostgreSql 如何配置一个用户只能看到对应的数据库列表吗?
我来答
分享
D
Dataplus
2021-04-08
PostgreSql 如何配置一个用户只能看到对应的数据库列表吗?

PostgreSql 如何配置一个用户只能看到对应的数据库列表吗?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
你好我是李白

PostgreSQL的用户创建之后,默认对所有数据库具有connect权限以及对数据库属于public对象都可以操作。

你如果只想让某个用户具有不是属主的某个库的连接以及查看权限则可以:

revoke CONNECT ON DATABASE {db_name} from public;
grant all on DATABASE {db_name}to {username};
–当然也可以用grant revoke控制更细粒度的权限,根据自己需要,需要注意pg某些权限需要从public回收掉才可以,比如connect。

暂无图片 评论
暂无图片 有用 0
张晓栋

尝试了 revoke CONNECT ON DATABASE a1 from public; 这样 别的用户是没有办法连接 a1 这个数据库了,但是 其他用户连接到 pg server 之后在 db list 依然可以看到a1这个数据库的存在,如果想要做到 只有指定的账户 在 db list 看到这个数据库怎么操作呢,对应的需求在 mysql 和 sqlserver 中都可以解决,唯独 pg 不知该如何处理,望解答,可付费

暂无图片 评论
暂无图片 有用 0
你好我是李白

PostgreSQL database名是全局,貌似通过正常grant跟revoke不能控制看到的db list,我测试回收系统表select权限也能看到db list。

暂无图片 评论
暂无图片 有用 0
马腾飞

找到解决办法了吗?

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏