加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL:通过角色(role)赋权

发布时间:2020-12-13 17:24:13 所属栏目:百科 来源:网络整理
导读:在 PostgreSQL 里没有区分用户和角色的概念,"CREATE USER" 为 "CREATE ROLE" 的别名,这两个命令几乎是完全相同的,唯一的区别是"CREATE USER"命令创建的用户的 LOGIN 属性默认为 on,而 "CREATE ROLE" 命令创建的用户的 NOLOGIN 属性默认为 on。 这里我们创

在 PostgreSQL 里没有区分用户和角色的概念,"CREATE USER" 为 "CREATE ROLE" 的别名,这两个命令几乎是完全相同的,唯一的区别是"CREATE USER"命令创建的用户的 LOGIN 属性默认为 on,而 "CREATE ROLE" 命令创建的用户的 NOLOGIN 属性默认为 on。

这里我们创建一个查询数据库的角色:dbquery,然后把dbquery角色赋予其他用户,来实现角色的传递。


1、创建dbquery角色(也可以称用户)

createroledbquery
nosuperusernocreatedbnocreaterolenoinherit
login
encryptedpassword'password';


2、赋予dbquery连接数据库、查询相关表的权限

grantconnectondatabasemydbtodbquery;
grantusageonschemaschm1,schm2,schm3todbquery;
grantselectontb01todbquery;


3、创建普通查询用户usr1,并将dbquery角色赋予usr1

方法一:

createroleusr1
nosuperusernocreatedbnocreateroleinherit
login
encryptedpassword'password1';

备注:这里创建 usr1 用户,并开启 inherit 属性。

grantdbquerytousr1;


方法二:

createroleusr1
nosuperusernocreatedbnocreateroleinherit
login
encryptedpassword'password1'
inroledbquery;



p.s. 参考:http://francs3.blog.163.com/blog/static/405767272011102911222394/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读