2021-04-08
PostgreSql 如何配置一个用户只能看到对应的数据库列表吗?
10MPostgreSql 如何配置一个用户只能看到对应的数据库列表吗?
我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
10MPostgreSql 如何配置一个用户只能看到对应的数据库列表吗?
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 不知该如何处理,望解答,可付费
评论
有用 0PostgreSQL database名是全局,貌似通过正常grant跟revoke不能控制看到的db list,我测试回收系统表select权限也能看到db list。
评论
有用 0
墨值悬赏