概述
2019独角兽企业重金招聘Python工程师标准>>>
在 PostgreSQL 里没有区分用户和角色的概念,"CREATE USER" 为 "CREATE ROLE" 的别名,这两个命令几乎是完全相同的,唯一的区别是"CREATE USER"命令创建的用户的 LOGIN 属性默认为 on , 而 "CREATE ROLE" 命令创建的用户的 NOLOGIN 属性默认为 on。
这里我们创建一个查询数据库的角色:dbquery,然后把dbquery角色赋予其他用户,来实现角色的传递。
1、创建dbquery角色(也可以称用户)
create role dbquery
nosuperuser nocreatedb nocreaterole noinherit
login
encrypted password 'password' ;
2、赋予dbquery连接数据库、查询相关表的权限
grant connect on database mydb to dbquery ;
grant usage on schema schm1,schm2,schm3 to dbquery;
grant select on tb01 to dbquery;
3、创建普通查询用户usr1,并将dbquery角色赋予usr1
方法一:
create role usr1
nosuperuser nocreatedb nocreaterole inherit
login
encrypted password 'password1';
备注:这里创建 usr1 用户,并开启 inherit 属性。
grant dbquery to usr1;
方法二:
create role usr1
nosuperuser nocreatedb nocreaterole inherit
login
encrypted password 'password1'
in role dbquery;
p.s. 参考:http://francs3.blog.163.com/blog/static/405767272011102911222394/
转载于:https://my.oschina.net/goopand/blog/352192
最后
以上就是迷你时光为你收集整理的PostgreSQL:通过角色(role)赋权的全部内容,希望文章能够帮你解决PostgreSQL:通过角色(role)赋权所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复