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

【编辑推荐】

教您如何在oracle中存图片

oracle树查询的实现

oracle查询当前时间的实现

带您了解Oracle层次查询

带您深入了解Oracle临时表