在 Postgresql 里没有区分用户和角色的概念,"CREATE USER" 为 "CREATE ROLE" 的别名,这两个命令几乎是完全相同的,唯一的区别是"CREATE USER"命令创建的用户的 LOGIN 属性默认为 on,而 "CREATE ROLE" 命令创建的用户的 NOLOGIN 属性默认为 on。
这里我们创建一个查询数据库的角色:dbquery,然后把dbquery角色赋予其他用户,来实现角色的传递。
1、创建dbquery角色(也可以称用户)
createroledbquery nosuperusernocreatedbnocreaterolenoinherit login encryptedpassword'password';
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/
原文链接:https://www.f2er.com/postgresql/195482.html