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] 举报,一经查实,本站将立刻删除。