角色

<!-- [if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->

--========================

--author:_yeeXun

--date:12/31/2010 11:09:00 AM

--address:Jau 17-304

--========================

角色是相关权限的命令集合, 使用角色的主要目的是为了简化权限的管理。

为了简化对权限的管理,oracle 事先把一系列的权限集中在一起,打包给某个用户。

预定义角色

是指oracle 所提供的角色,每种角色都用于执行一些特定的管理任务,下面是 connectresourcedba 角色;

1. connect角色

Connect角色具有一般应用开发人员需要的大部分权限,当建立一个用户后,大多数 情况下,只要给用户授予 connectresource 角色就够了,那么 connect 角色具 有哪些权限呢?

Altersession--修改会话

Createcluster--建簇

Createdatabaselink--建数据库连接

Createsession--建会话

Createtable--建表

Createview--建视图

Createsequence--建序列

2. resource角色

Resource角色具有应用开发人员所需要的其他权限,比如建立存储过程。触发器等。 注意:resource 角色隐含了 unlimitedtablespace 系统权限

Resource角色包含了以下系统权限:

Createcluster--建簇

Createindextype--

Createtable--建表

Createsequence--建序列

Createtype--建类型

Createprocedure--建存储过程

Createtigger--建触发器

3. dba角色

Dba角色具有所有的系统权限,以及 withadminoption 选项,默认的 dba 用户为 syssystem ,他们可以将任何系统权限授予其他用户;

但是要注意:dba 角色不具备 sysdbasysoper 的特权 ( 启动和关闭数据库 )

自定义角色

顾名思义就是自己定义的角色,根据自己的需要来定义。一般是dba 来建立,如果由别的用户建立,那么此用户需具有 createrole 的系统权限。在建立角色时可以指定验证方式 ( 不验证,数据库验证等 )

1. 建立角色( 不验证 )

如果角色是公用的,可以采用不验证的方式建立角色。

Createrole角色名 notidentified;

2. 建立角色( 数据库验证 )

采用这样的方式时,角色名、口令存放在数据库中。当激活该角色时,必须提供口令。 在建立这种角色时,需要提供口令:

Createrole角色名 identifiedby 密码 ;

角色授权与分配

当建立角色时,角色没有任何权限,为了使角色完成特定的任务,必须为其授予相应的 系统权限和对象权限。

1. 给角色授权

给角色授权和合用户授权没多大区别,但是要注意: 系统权限的unlimitedtablespace 和对象权限的 withgrantoption 选项是不能授予角色的

Sql>connsystem/manager;

Sql>grantcreatesessionto角色名 withadminoption;

Sql>connscott/tiger;

Sql>grantselectonscott.empto角色名 ;

Sql>grantinsert,update,deleteonscott.empto角色名 ;

2.分配角色

一般分配角色由dba 来完成,如果要以其他用户身份分配角色,则要求该用户必须具 有 grantanyrole 的系统权限。

Sql>connsystem/manager;

Sql>grant角色名 to 用户名 withadminoption;

删除角色

受用droprole ,一般是 dba 来执行的,如果其他用户则要求该用户具有 dropany role 系统权限。

Sql>connsystem/manager;

Sal>droprole角色名 ;

角色一旦被删除,拥有此角色的用户则不能操作数据库。

显示角色的信息

1. 显示所有的角色

Sql>select*fromdba_roles;

2.显示角色具有的系统权限。

Sql>selectprivilege,admin_optionfromrole_sys_privswhererole='角色名 ';

3. 显示角色具有的对象权限

通过数据字典视图dba_tab_privs 可以查看角色具有的对象权限或是列的权限。

4. 显示用户具有的角色,以及默认角色

当以用户的身份连接到数据库时,oracle 会自动的激活默认的角色,通过查询数据字 典视图 dba_role_privs 可以显示某个用户具有的所有角色以及当前默认角色

Sql>selectgranted_role,default_rolefromdba_role_privswhere grantee='SCOTT';

精细访问控制

是指用户可以使用函数,策略实现更加细微的安全访问控制。如果使用精细访问控制, 则当在客户端发出sql 语句 (select,insert,update,delete) 时, oracle 会自 动在 sql 语句后追加谓词 (where 子句 ) ,并执行新的 sql 语句。通过这样的控制,可 以使得不同的数据库用户在访问相同表时,返回不同的数据信息。

--the end--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值