Oracle用户根据所被授予的权限分为系统权限和对象权限。这里我们主要介绍介绍创建角色、角色赋权、回收角色权限等方面。下面我们来一一进行解析。
一、创建Oracle用户
Create role clerk identified by bicentennial;
以上命令创建一个名为clerk的角色,他的密码为bicentennial,当角色被授予某个用户时,必须使用密码进行验证。如果不指定identified子句,则数据库使用not identified,这时激活角色不需要认证。
二、Oracle用户权限
1.授予角色系统权限和角色
如果要给某个角色授权,你必须需要具有以下权限:
1)如果要授予系统权限,你自已必须被授与此权限时,包括Admin Option或拥有GRANT ANY PRIVILEGE系统权限。
2)如果授与角色,你必须被授予与此角色时包括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.这个用户或角色可以将此权限的管理权传递给任何用户。
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,被授权的用户将获得以下Oracle用户权限:
i被授权的用户可以授予任何用户此对像的权限
ii如果被授权的用户拥有Create view或Create any view系统权限,则用户可以在此表上创建一个视图,同时赋权给其他用户访问。
3.在列上授权
你可以在单独的列上授予用户插入、修改、删除权限:Grant insert (acct_no) on accounts to scott;
三、回收Oracle用户权限
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
【编辑推荐】