postgresql只读账号设置
发布时间:2020-12-13 17:12:07 所属栏目:百科 来源:网络整理
导读:1、实验环境 dc_db=selectversion();version---------------------------------------------------------------------------------------------------------------PostgreSQL9.4.1onx86_64-unknown-linux-gnu,compiledbygcc(GCC)4.4.720120313(RedHat4.4.7-1
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |