带您深入了解oracle权限管理

时间:2021-01-28 17:34:10

oracle权限管理同样是在创建数据库角色之后赋予相应的权限,下面对oracle权限管理作了详尽的阐述,如果您对oracle权限管理方面感兴趣的话,不妨一看。

一、创建角色
Create role clerk identified by bicentennial;
以上命令创建一个名为clerk的角色,他的密码为bicentennial,当角色被授予某个用户时,必须使用密码进行验证。如果不指定identified子句,则数据库使用not identified,这时激活角色不需要认证。

二、角色赋权

1.授予角色系统权限和角色
如果要给某个角色授权,你必须需要具有以下权限:
 如果要授予系统权限,你自已必须被授与此权限时,包括Admin Option或拥有GRANT ANY PRIVILEGE系统权限。
 如果授与角色,你必须被授予与此角色时包括Admin Option或拥有GRANT ANY ROEL 系统角色。
Grant create session to jward;
a)授予Admin Option
Grant new_dba to michal with admin option;
如果一个用户或角色被授权的同时指定with admin option子句,则有以下效果:
i.该用户或角色可以将此权限赋与任何其他用户,或从其他用户回收此权限。
ii.这个用户或角色可以将此oracle权限管理权传递给任何用户。
iii.被授予角色的用户可以修改或drop角色。
b)在赋权的同时创建用户
Oracle允许你在grant的同时创建一个新用户,如果你通过一个identified by子句指定一个密码,而用户名/密码不存在数据库中,一个新用户就将被创建。
c)Grant connect to ssmith identified by p1q2r3;

2.授予object角色
如果你要将某个object的权限授予某个用户,你必须符合以下条件:
 你拥有指定的object
 你拥有GRANT ANY OBJECT PRIVELEGE系统权限
 你被赋与此Object权限包括WITH GRANT OPTION。
Grant select,insert,delete om emp to jfee,tsmith;
Grant all on emp to jfee;
a)授予Grant Option
如你指定with grant option,被授权的用户将获得以下权限:
i被授权的用户可以授予任何用户此对像的权限
ii如果被授权的用户拥有Create view或Create any view系统权限,则用户可以在此表上创建一个视图,同时赋权给其他用户访问。

3.在列上授权
你可以在单独的列上授予用户插入、修改、删除权限:
Grant insert (acct_no) on accounts to scott;

三、回收角色权限

1.回收系统权限
任何拥有指定系统权限的ADMIN OPTION或拥有权限管理权限的用户都可以从任何用户上回收指定权限
Revoke create table from tsmith;
这里要注意,ADMIN OPTION不能作为权限单独回收。

2.回收Object权限
为了回收Object权限,必须符合以下条件:
 此权限是由你之前赋与用户或角色的
 你拥有GRANT ANY OBJECT PRIVILEGE权限
注意一个拥有GRANT OPTION的用户,如果Object对像被回收,则所有由它赋权的用户的相应权限都将被回收
Revoke all on dept from human_resource;

四、赋权与回收的生效时间
关于系统权限或Object权限的赋权与回收都是立即生效的。
将角色同授予某个用户或从用户回收将在下一次新建session时生效,除非使用Set 指定。
在session中,用户可以使用set role来改变role
Set role ckerk identified by bicentennial; 如果用户有密码则必须使用identified by 指定
关闭所有角色
Set role none

五、指定用户缺省权限
当用户登陆时,oracle自动将用户缺省角色中的权限赋与用户。
Alter user jane default role payclerk,pettycash

 

转自:http://database.51cto.com/art/201010/231600.htm