Postgresql:角色(用户、组、成员关系、继承)

超级用户:类似于其他系统的sa、root、sysdba

  • initdb.exe 初始化是建立的第一个superuser 的名字 和 执行initdb.exe是的os帐号相同
  • 第一个superuser的oid=10
  • superuser是不受postgresq的对象权限系统控制的,可以在系统里做任何事情!危险!!

 

对象的所有者owner:很特殊的角色

  • 对象的权限系统是对象上权限的有限集合,但有些权限是无法grant、revoke的,这就是owner所特性的:owner用户很多普通用户不具备的权利
  • owner权限可以有superuser来转移

 

postgresql自8.1后不再区分用户、组了。统统称之为角色role

  • role是和数据库无关的
  • role就是权限的集合
  • role可以互相交叉、继承、被赋于对象权限

 

特殊的public角色 :属于所有role的公共角色

  • create role role_name [login createdb super iherit ...]
  • create user role_name  等于 create role role_name login
  • drop role
  • grant {all| priviliges} on object to role_name
  • revoke {all| priviliges} on object from role_name

From:http://www.cnblogs.com/jinzhenshui/archive/2009/06/29/1513074.html

 

角色:
sql>create role role1 noinherit password '1234';
sql>GRANT CONNECT ON DATABASE testljs TO role1;
sql>grant connect on schema testljs  to role1;

用户:
sql>create role user1 login noinherit password '1234';
sql>grant connect on database testljs  to role1;
sql>grant connect on schema testljs  to role1; -- schema usage
sql>revoke connect on database  testljs from user1;  --
sql>connect user1/1234@localhost:5444/testljs ; --ok
sql>revoke connect  from user1; 
sql>connect user1/1234@localhost:5444/testljs ; --faile

 

sql>grant  connect to role1; -- ok 可以连接
GRANT group1 TO user1;

 

sql>create role role2 noinherit password '1234';
sql>create role user2 login noinherit password '1234';
sql>revoke connect from user2;
sql>grant role2 to user2;
sql>revoke connect from role2;
sql>grant  connect to role2;
sql>revoke connect from role1;
sql>grant role2 to role1;

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年11月    »
123
45678910
11121314151617
18192021222324
252627282930
搜索
标签列表
网站分类
最新留言
    文章归档
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.闽ICP备11018667号-2