postgresql只读账号设置

前端之家收集整理的这篇文章主要介绍了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

猜你在找的Postgre SQL相关文章