微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql只读账号设置

1、实验环境

dc_db=>selectversion();
version
---------------------------------------------------------------------------------------------------------------
Postgresql9.4.1onx86_64-unkNown-linux-gnu,compiledbygcc(GCC)4.4.720120313(RedHat4.4.7-16),64-bit
(1row)

2、现有用户

postgres:超级用户

usr_mall_api:usr_mall_api模式所有者。

3、收回public模式写权限

以超级用户执行

dc_db=#\c
YouareNowconnectedtodatabase"dc_db"asuser"postgres".
dc_db=#revokeCREATEonSCHEMApublicfrompublic;
REVOKE

4、创建新用户

dc_db=#createuserreadonlywithpassword'123';
CREATEROLE

5、现有表的只读权限

对于模式的usage权限,表示允许查找模式中的对象。如果要查询一个模式中的表,实际上还需要有表的select权限。

dc_db=#\c
YouareNowconnectedtodatabase"dc_db"asuser"postgres".
dc_db=#grantusageonschemausr_mall_apitoreadonly;
GRANT
dc_db=#grantselectonalltablesinschemausr_mall_apitoreadonly;
GRANT
dc_db=#

6、新建表的只读权限

上面的sql命令只把现有表的读权限给了readonly,如果再创建新表,readonly用户还是不能读。需要把新建表的读权限也给readonly用户

for user usr_mall_api,postgres表示usr_mall_api和postgres用户在sur_mall_api模式中新建的表,认的只读权限赋给readonly。

dc_db=#alterdefaultprivilegesforuserusr_mall_api,postgresinschemausr_mall_apigrantselectontablestoreadonly;
ALTERDEFAULTPRIVILEGES

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐