Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种操作的权利。而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合。
1 权限
Oracle数据库有两种途径获得权限,它们分别为:
① DBA直接向用户授予权限。
② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户。
使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限。
Oracle中的权限可以分为两类:
•系统权限
•对象权限
1.1 系统权限
系统权限是在数据库中执行某种操作,或者针对某一类的对象执行某种操作的权利。例如,在数据库中创建表空间的权利,或者在任何模式中创建表的权利,这些都属于系统权限。在Oracle9i中一共提供了60多种权限。
系统权限的权利很大,通常情况下:
① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改。
② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象。
③ 普通用户一般只具有Create Session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库
④ 只有具有Grant Any Privilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限。
1.2对象权限
对象权限是针对某个特定的模式对象执行操作的权利。只能针对模式对象来设置和管理对象权限。
对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限。不同类型模式对象具有不同的对象权限。比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限。
但是并不是所有的模式对象都可以设置对象权限。比如簇、索引、触发器以及数据库链接等模式就不具有对象权限。这些模式对象的访问控制是通过相应的系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限。
用户自动拥有他的模式中所有对象的全部对象权限,他可以将这些对象权限授予其他的用户或角色。比如,Test1用户创建了一个表Table1,在没有授权的情况下,用户Test2不能查询、修改、删除这个表。如果Test1将ETP表的Select对象权限授予了Test2,则该用户就可以查询Table1表了。如果在为其它用户授予对象权限时用了With Grant Option选项,被授予权限的用户还可以将这个权限在授予其他用户。
2 角色
2.1角色的概念
角色就是多个相关权限的命名集合。通过角色来进行对用户授予权限,可以大大简化DBA的工作量。比如,处于统一部门中的30多个用户都需要访问数据库中的一系列表,DBA可以将这些表的中合适的对象权限授予一个角色,然后在把这个角色授予这些用户,这样进行操作要比为没有用户进行授权要便捷多了,而且要对这些用户的权限进行统一修改,只需要修改角色的权限即可。
2.2角色的优点
通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:
•简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户。这样不仅简化了授权操作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限。
•动态权限管理 角色可以被禁用或激活。当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了。这样就可以对多个用户的权限进行动态控制了。
•灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令。这样就能够在应用程序中对角色进行控制。比如禁用或者激活等操作。
下面以Oracle9i为例,给出具体的实现用户授权:
(1)设定各种角色,及其权限
CREATE ROLE checkerrole DENTIFIEDBYxm361001;
CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;
GRANT SELECT,UPDATE ON
account.paytable TO checkerrole;
GRANT CONNECT TO defaultrole;
(2)创建用户
CREATE USER xiaoli IDENTIFIEDBY xiaoli;
(3)授权
GRANT checkerrole TO xiaoli;
GRANT defaultrole TO xiaoli;
(4)设定用户缺省的角色
ALTER USER xiaoli DEFAULTROLE defaultrole;
(5)注册过程
CONNECT xiaoli/xiaoli@oracle
此时用户只有其缺省角色的权限。
(6)激活角色
SET ROLE checkerrole IDENTIFIEDBY xm361001;
----操作成功后,xiaoli拥有checkerrole的权限。
----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hbsanwei/archive/2009/11/10/4795265.aspx
分享到:
相关推荐
"使用PLSQL创建Oracle数据库用户并设置权限" 在 Oracle 数据库中,创建用户并设置权限是数据库管理员的基本任务之一。在本文中,我们将使用 PLSQL 创建 Oracle 数据库用户并设置权限,包括创建用户、设置权限和创建...
Oracle 数据库权限管理是确保数据库安全和可靠的关键。权限管理可以防止未经授权的访问和操作,从而保护数据库中的数据。权限管理还可以帮助管理员更好地控制数据库的访问和使用。 在 Oracle 数据库中,权限管理是...
oracle数据库的dba权限,里面的权限解释。
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其强大的功能和稳定性使其在企业级应用中占据了重要地位。本文将详细解析Oracle数据库的体系结构,帮助读者深入理解其内部工作原理。 Oracle数据库的...
ORACLE数据库权限管理是指在ORACLE数据库中对用户、角色和权限的管理,以确保数据库的安全和可靠性。下面是ORACLE数据库权限管理改进措施的详细解释: 编写目的 ORACLE数据库权限管理改进措施的编写目的是为了提高...
Oracle数据库有完善的权限和角色机制,通过用户、权限和角色管理数据访问。审计功能可以记录数据库活动,确保合规性。网络加密和SSL协议保障数据传输安全。 五、数据库性能优化 Oracle的性能优化涉及查询优化、索引...
Oracle 数据库提供了多种用户角色和权限,例如 sys、system、dba 等角色,每个角色都具有不同的权限和职责。 SQL 简介 SQL(Structured Query Language)是用于管理关系数据库的标准语言。 SQL 语言提供了多种...
Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,它在企业级数据管理和应用程序开发中扮演着核心角色。本资源“Oracle数据库系统应用与开发”深入探讨了Oracle数据库的使用和开发技术,特别关注...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。...通过这五天的学习,你可以系统地提升在Oracle数据库方面的技能,为实际工作中的数据库设计、开发和维护打下坚实基础。
Oracle数据库权限系统是指Oracle数据库中的一套完整的权限管理机制,旨在确保数据库安全和数据完整性。该系统分为系统权限和对象权限两大类。 系统权限(Database System Privilege) --------------------------- ...
Oracle数据库中的角色管理是一项重要的安全管理机制,它允许数据库管理员有效地管理和分配权限给大量具有相似权限需求的用户。角色(Role)是Oracle数据库中的一种安全主体,它们类似于Windows操作系统中的用户组,...
在C#编程中,Oracle数据库是一个常见的后端存储系统,用于管理和处理大量数据。本毕业设计项目利用C# 2010作为开发工具,结合Oracle数据库10g,构建了一个企业用户管理系统,充分展示了C#与Oracle数据库的集成应用。...
在这个“Abp项目模板使用Oracle数据库”的场景中,开发者已经将Abp框架与Oracle 11g数据库集成,以便利用Oracle的强大功能来存储和管理应用程序的数据。Abp.Zero是Abp框架的一个子模块,主要关注多层架构中的基础...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,它在企业级数据存储和管理中扮演着核心角色。Oracle数据库基础知识是每个IT从业者或自学者必备的知识领域。以下将深入讲解Oracle数据库的一些关键概念和操作...
Oracle数据库是一种广泛使用的大型关系型数据库管理系统,它在企业级应用中扮演着核心角色。然而,当不再需要Oracle数据库或需要进行系统升级时,正确、彻底地卸载Oracle数据库至关重要,以防止残留文件影响新安装或...
权限和角色管理是Oracle数据库安全管理的核心部分,它帮助管理员控制用户的访问权限,确保数据的安全性。 **1. 权限管理:** - **系统权限**:授予用户执行特定操作的权利,如创建表、索引或触发器等。 - **对象...
总的来说,Oracle数据库课程涵盖了数据库的基础理论和实际操作,旨在培养学生在实际项目中管理、设计和优化数据库的能力。通过完成这些大作业,学生可以深入理解Oracle数据库的工作原理及其在企业级应用中的重要性。
数据库的安全和权限管理是确保数据完整性和安全性的关键。在不同的数据库管理系统中...了解这些差异对于数据库管理员和开发人员来说至关重要,可以帮助他们根据项目需求选择合适的数据库系统,并有效地管理数据库权限。
DBA的职责广泛,包括理解Oracle数据库的体系结构、安装和升级数据库管理系统、控制数据库的启动和关闭、管理数据库用户、权限、存储空间以及执行数据库的备份和恢复操作。 Oracle数据库的体系结构主要由物理结构、...
Oracle 数据库中的角色管理是权限控制的一个重要方面,它允许管理员高效地管理和分配数据库权限。角色扮演着权限集合的角色,可以被授予用户或者其他的角色,从而简化了权限的分配和管理流程。 首先,角色的定义是...