一、何为角色?
我在前面的篇幅中说明权限和用户。慢慢的在使用中你会发现一个问题:如果有一组人,他们的所需的权限是一样的,当对他们的权限进行管理的时候会很不方便。因为你要对这组中的每个用户的权限都进行管理。
有一个很好的解决办法就是:角色。角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。那么上述问题就很好处理了,只要第一次将角色赋给这一组用户,接下来就只要针对角色进行管理就可以了。
以上是角色的一个典型用途。其实,只要明白:角色就是一组权限的集合。下面分两个部门来对oracle角色进行说明。
二、系统预定义角色
预定义角色是在数据库安装后,系统自动创建的一些常用的角色。下介简单的介绍一下这些预定角色。角色所包含的权限可以用以下语句查询:
sql>select * from role_sys_privs where role='角色名';
1.CONNECT, RESOURCE, DBA
这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。oracle建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会作为预定义角色。
2.DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE
这些角色主要用于访问数据字典视图和包。
3.EXP_FULL_DATABASE, IMP_FULL_DATABASE
这两个角色用于数据导入导出工具的使用。
4.AQ_USER_ROLE, AQ_ADMINISTRATOR_ROLE
AQ:Advanced Query。这两个角色用于oracle高级查询功能。
5.SNMPAGENT
用于oracle enterprise manager和Intelligent Agent
6.RECOVERY_CATALOG_OWNER
用于创建拥有恢复库的用户。关于恢复库的信息,参考oracle文档《Oracle9i User-Managed Backup and Recovery Guide》
7.HS_ADMIN_ROLE
A DBA using Oracle's heterogeneous services feature needs this role to access appropriate tables in the data dictionary.
二、管理角色
1.建一个角色
sql>create role role1;
2.授权给角色
sql>grant create any table,create procedure to role1;
3.授予角色给用户
sql>grant role1 to user1;
4.查看角色所包含的权限
sql>select * from role_sys_privs;
5.创建带有口令以角色(在生效带有口令的角色时必须提供口令)
sql>create role role1 identified by password1;
6.修改角色:是否需要口令
sql>alter role role1 not identified;
sql>alter role role1 identified by password1;
7.设置当前用户要生效的角色
(注:角色的生效是一个什么概念呢?假设用户a有b1,b2,b3三个角色,那么如果b1未生效,则b1所包含的权限对于a来讲是不拥有的,只有角色生效了,角色内的权限才作用于用户,最大可生效角色数由参数MAX_ENABLED_ROLES设定;在用户登录后,oracle将所有直接赋给用户的权限和用户默认角色中的权限赋给用户。)
sql>set role role1;//使role1生效
sql>set role role,role2;//使role1,role2生效
sql>set role role1 identified by password1;//使用带有口令的role1生效
sql>set role all;//使用该用户的所有角色生效
sql>set role none;//设置所有角色失效
sql>set role all except role1;//除role1外的该用户的所有其它角色生效。
sql>select * from SESSION_ROLES;//查看当前用户的生效的角色。
8.修改指定用户,设置其默认角色
sql>alter user user1 default role role1;
sql>alter user user1 default role all except role1;
详见oracle参考文档
9.删除角色
sql>drop role role1;
角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了。
权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:
Object 对象级
System 系统级
Role 角色级
这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户。
对管理权限而言,角色是一个工具,权限能够被授予给一个角色,角色也能被授予给另一个角色或用户。用户可以通过角色继承权限,除了管理权限外角色服务没有其它目的。权限可以被授予,也可以用同样的方式撤销。
建立和使用角色
如前所诉,角色存在的目的就是为了使权限的管理变得轻松。建立角色使用CREATE ROLE语句,他的语法如下:
CREATE ROLE role_name IDENTIFIED BY password
CREATE ROLE role_name IDENTIFIED EXTERNALLY
CREATE ROLE role_name IDENTIFIED GLOBALLY
转自:http://blog.csdn.net/wwweducn/archive/2006/03/19/629434.aspx
缺省情况下建立的角色没有password或者其他的识别。如果使用IDENTIFIED BY 子句建立,那么角色不会自动响应,必须用SET ROLE激活。
SET ROLE role_name IDENTIFIED BY password
EXTERNALLY和GLOBALLY类型的角色由操作系统和ORACLE Service server验证。通常用户需要权限修改应用程序中使用的表单中的数据,但是只有在应用程序运行时而不是在使用ad hoc工具时,这种上下文敏感安全可以通过有PASSWORD的角色来实现。当用户在应用程序内部连结数据库时,代码将执行SET ROLE命令,通过安全验证。所以用户不需要知道角色的password,也不需要自己输入SET ROLE命令。
对象权限
对象权限就是指在表、视图、序列、过程、函数或包等对象上执行特殊动作的权利。有九种不同类型的权限可以授予给用户或角色。如下表:
权限 ALTER DELETE EXECUTE INDEX INSERT READ REFERENCE SELECT UPDATE
Directory no no no no no yes no no no
function no no yes no no no no no no
procedure no no yes no no no no no no
package no no yes no no no no no no
DB Object no no yes no no no no no no
Libary no no yes no no no no no no
Operation no no yes no no no no no no
Sequence yes no no no no no no no no
Table yes yes no yes yes no yes yes yes
Type no no yes no no no no no no
View no yes no no yes no no yes yes
对象由不止一个权限,特殊权限ALL可以被授予或撤销。如TABLE的ALL权限就包括:
SELECT,INSERT,UPDATE和DELETE,还有INDEX,ALTER,和REFERENCE。
如何看这个表我们以ALTER权限为例进行说明
ALTER权限
允许执行ALTER TABLE和LOCK TABLE操作,ALTER TABLE可以进行如下操作:
. 更改表名
. 增加或删除列
. 改变列的数据类型或大小
. 将表转变为分区表
在SEQUENCE上的ALTER权限允许执行ALTER Sequence语句,重新给sequence分配最小值、增量和缓冲区大小。
系统权限
系统权限需要授予者有进行系统级活动的能力,如连接数据库,更改用户会话、建立表或建立用户等等。你可以在数据字典视图SYSTEM_PRIVILEGE_MAP上获得完整的系统权限。对象权限和系统权限都通过GRANT语句授予用户或角色。需要注意的是在授予对象权限时语句应该是WITH GRANT OPTION子句,但在授予系统权象时语句是WITH ADMIN OPTION,所以在你试图授予系统权限时,使用语句WITH GRANT OPTION系统会报告一个错误:ONLY ADMIN OPTION can be specified。在考试中要特别注意这个语法和错误信息。
角色和角色权限
角色权限就是将属于用户的权限授予一个角色。任何权限都可以授予给一个角色。授予系统权限给被授予者必须使用WITH_ADMIN_OPTION子句,在会话期间通过SET ROLE语句授予或撤销角色权限。然而,角色权限不能依靠存储在SQL中的权限。如果函数、程序、包、触发器或者方法使用另一个计划拥有的对象,那么就必须直接给对象的拥有者授权,这是因为权限不会在会话之间改变。
授予和撤销权限
给用户或者角色授予权限使用GRANT 语句,GRANT语句的语法如下:
GRANT ROLE(或system privilege) TO user(role,Public) WITH ADMIN OPTION(可选)
对象权限被授予 WITH GRANT OPTION,
权限和数据字典
数据字典是ORACLE存储有关数据库结构信息的地方,数据本身存放在其他地方,数据字典由表和视图组成。在考试中关于数据字典最容易考的内容是:查看那一类权限已经被授予。比如DBA_TAB_PRIV包含了用户授予给另一用户的对象权限和在授予时是否带有WITH GRANT OTPION子串的信息。注意DBA_TAB_PRIV不仅仅包含了对表的权限的关系,他还包括函数、包、队列等等上的权限的关系。
主要是看你附的权限 ,Oracle里面是可以设置的,很简单,在角色管理里面点点就可以了
具体权限看你自己了,选项里面描述的很全
分享到:
相关推荐
本文将深入探讨Oracle角色大全信息,包括角色的类型、创建、分配、撤销以及常见内置角色的详细说明。 一、角色类型 1. 体系结构角色(System Role):由Oracle提供,具有系统级别的权限,例如DBA角色,拥有对数据库...
在Oracle数据库系统中,角色管理是一项关键的安全策略,它允许管理员...熟练掌握角色的创建、权限分配、撤销以及角色的管理和维护,将使你成为一个有效的Oracle角色管理员,能够更好地保护数据并优化数据库的日常运营。
Oracle数据库系统是企业级数据管理的重要工具,其权限和角色管理是确保数据安全性和系统稳定性不可或缺的部分。在Oracle中,权限和角色的概念是为用户提供访问控制机制,允许管理员精细地控制用户对数据库对象的访问...
Oracle数据库系统在权限管理方面提供了精细的控制机制,旨在确保数据的安全性和访问的合理性。预定义的角色是这一机制的关键组成部分,其中包括CONNECT、RESOURCE、DBA、EXP_FULL_DATABASE和IMP_FULL_DATABASE这五个...
oracle 用户、权限和角色管理,oracle 人员必看。
Oracle角色是一种权限集合,用于简化权限管理。角色可以包含多种权限,例如CREATE TABLE、SELECT ANY TABLE等。角色可以授予用户,也可以从用户撤销。 SQL 数据操作和查询 SQL(Structured Query Language)是...
### Oracle系统自带角色说明 在Oracle数据库中,为了方便用户管理和使用权限,系统预定义了一系列的角色,这些角色包含了特定的权限组合,可以帮助管理员快速地为不同的用户分配合适的访问权限。本文将详细介绍...
在Oracle数据库中,系统角色是预定义的一组权限集合,它们为数据库管理员(DBA)提供了方便的方式来管理和分配权限。DBA角色是最具权限的角色之一,通常赋予那些负责数据库全面管理的用户。当误删除了这个关键角色时...
3. **创建Oracle角色**: 使用`CREATE ROLE`语句创建角色,如:`CREATE ROLE UserManRole;` 4. **指定用户角色**: 使用`GRANT`语句将角色授予用户,如:`GRANT UserManRole TO UserMan;` 5. **为角色授予权限**...
* Oracle 角色和权限:CREATE USER 语句、GRANT 语句、REVOKE 语句等 * Oracle 表管理:CREATE TABLE 语句、ALTER TABLE 语句、DROP TABLE 语句等 八、Oracle 高级使用 * Oracle 存储过程:创建存储过程、执行存储...
Oracle角色(Role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。 创建用户 ------ 创建用户可以使用create ...
- **角色的概念**:理解Oracle角色的概念及其作用。 - **角色管理**:学习如何创建、修改和删除角色。 #### 12. PL/SQL块的结构和实例 - **PL/SQL简介**:了解Oracle的程序化语言PL/SQL的基本结构。 - **PL/SQL块**...
Oracle用户权限角色设置,用来在新建的数据库中添加新的用户,并为其设置权限。
Oracle角色管理 角色是数据库中用于将一组权限组织在一起的容器。文档中提到的创建角色(CREATE ROLE)和识别角色(IDENTIFIED BY)暗示了角色的创建和管理。角色的使用可以简化权限管理,使得将权限分配给用户或...
#### 三、Oracle 角色详解 在Oracle数据库中,角色是一种用于组织权限的方式。角色可以包含一系列系统权限和对象权限,它们可以被授予给用户,从而使用户获得执行特定操作的能力。 **示例角色**: - **DBA**:...
Oracle创建删除用户、角色、表空间、导入导出.命令总结 从中可以学到很多oracle的知识。尤其针对入门者
Oracle数据库权限与角色管理是数据库安全的重要组成部分,它允许管理员有效地控制不同用户对数据库资源的访问。角色是权限的集合,通过角色,管理员可以批量地授予或撤销一组权限,简化权限管理的复杂性。以下是对...
在描述中提到的"asp.net角色管理的oracle版本",意味着这个解决方案专门针对使用Oracle数据库的ASP.NET应用,提供了与角色相关的功能。角色管理是安全控制的一部分,它允许管理员将用户分组到不同的角色,然后根据...