EnterpriseDb 对象分配权限

在EnterpriseDb 中赋予一个用户(非对象创建者) 用于对某个对象的权限(select ,update,...)
1  创建用户xmstc_curd用户
create user xmstc_curd identify ....; 或者 create role xmstc_curd23 identify ...;

2 赋予模式的权限
grant usage on schema gk to  xmstc_curd

3 赋予对象的权限 (如果是根据sequence 序列自增的表,还需赋予相应序列的select 权限)
 grant能够授予使用者拥有select、instert、update、delete等权限,语法如下:
    grant 权限种类 on 对象名称 to 对象;
    授权种类可以为all、select、instert、update、delete、rule其中之一。若同時要授予多個權限種類可利用“,“來分隔。若為all代表授予所有權限。
grant select,update,delete,insert  on ad,student,score  to xmstc_curd

4 ok
GRANT 命令有两个基本变种:一个变种是给数据库对象(表、视图、序列、数据库、函数、过程语言、模式、表空间)赋予权限;一个变种是赋予一个角色中的成员关系。

USAGE
    对于过程语言,允许使用指定过程语言创建该语言的函数。这是适用于过程语言的唯一权限。
    对于模式,允许访问包含在指定模式中的对象(假设该对象的所有权要求同样也设置了)。

若要授予所有使用者可用public來表示。
grant select on emp to public;
上的方式授予使用者權限,但如果有多位使用者時設定就相當麻煩,那就可以透過group方式來執行。
首先,先建立群組。再將使用者加入到該群組。語法如下:
create group group1;
alter group group1 add user user1;
再與設定使用者權限相同方式來授予gruop權限。語法如下:
grant select on emp to group1;
    * revoke
      revoke與grant相反,用來撤回使用者權限。語法如下:
revoke 權限種類 on 資料表名稱 from 對象:
至於設定方式,權限種類、 資料表名稱、 對象設定方法與grant相同。
    *查看存取權限
      當我們建立完資料表時我們可利用psql的\z指令來查看這個資料表存取權限。
edb=# \z
Access privileges for database "edb"
Schema | Name | Type | Access privileges
----------------+---------------------------+----------+-----------------------------------------------------
dbo | sysindexes | view | {enterprisedb=arwdxt/enterprisedb,=r/enterprisedb}
dbo | sysobjects | view | {enterprisedb=arwdxt/enterprisedb,=r/enterprisedb}
dbo | systables | view | {enterprisedb=arwdxt/enterprisedb,=r/enterprisedb}
dbo | systypes | view | {enterprisedb=arwdxt/enterprisedb,=r/enterprisedb}
位於“=“左側為使用者,如果是public則不會顯示;位於“=“右側為權限清單。
r select
a insert
w update/delete
R rule
 

參看 http://59.120.192.175/?q=node/29

发表评论:

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

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

    Powered By Z-BlogPHP 1.7.3

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