您的位置:首页 > 数据库 > Oracle

带您深入了解oracle权限管理

2013-07-15 15:05 363 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: