-
表现
默认配置下,新建普通用户并授权某数据库,登录后可自由切换到其他库进行读写
-
复现
-
创建用户
1create role test with login password 'test' noinherit; 2create database test owner test; -
pb_hba
1host all all 0.0.0.0/0 md5; 2local all all md5; -
登录&切换
1psql -U test -d test 2 3test#= \c 其他数据库 4其他数据库#= ??
-
-
解决
PostgreSQL的设计哲学是依靠pg_hba.conf来进行集中控制,但是对于实时的线上业务修改pg_hba后重启服务有点不太现实
其实把每个库的connect权限收回即可(connect权限默认每个用户都有)
1REVOKE CONNECT ON DATABASE <database> FROM PUBLIC; 2-- 或者 3REVOKE ALL PRIVILEGES ON DATABASE <database> FROM PUBLIC;
PostgreSQL 权限踩坑小记
Stella981
2021-10-11
1058 0 0
点赞
收藏
评论区
加载中...