`
wking_forever
  • 浏览: 61594 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

关于ORACLE数据库中权限和角色的探索

 
阅读更多
 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的权限。
  ----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全
分享到:
评论

相关推荐

    oracle数据库高级培训

    Oracle数据库是一种广泛应用于企业级数据管理的高性能关系型数据库系统,其高级特性使得它在处理大规模、复杂的数据操作时表现出色...结合提供的资料,不断实践和探索,你将成为一名熟练的Oracle数据库管理员或开发者。

    oracle数据库入门教程

    通过这个Oracle数据库入门教程,你将获得对Oracle数据库系统的基本理解,能够建立和管理自己的数据库,编写SQL语句,以及初步了解DBA的角色。随着经验的积累,你将能够更深入地探索Oracle的高级特性,为各种复杂的...

    基于ORACLE数据库程序设计

    **基于ORACLE数据库程序设计** 本教程主要涵盖了Oracle数据库的基础知识和程序设计,旨在帮助初学者深入理解Oracle数据库系统,并掌握其程序设计方法。...在实践中不断探索和应用,将使你成为Oracle数据库领域的专家。

    oracle数据库课程设计案例,

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。本课程设计案例将为你提供深入理解Oracle数据库系统及其操作的...记得在实践中不断探索和总结,以深化对Oracle数据库的理解。

    Oracle数据库学习课件

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据主导...在学习过程中,遇到问题不要气馁,多查阅资料,参与社区讨论,实践是检验真理的唯一标准,祝你在Oracle数据库的世界里探索顺利!

    ORACLE大型数据库基础课件

    本课件旨在帮助初学者掌握Oracle数据库的基础知识,包括其基本架构、权限管理和角色管理等核心概念。 首先,让我们深入了解Oracle数据库的基本架构。Oracle数据库系统由多个组件构成,包括服务器进程、客户端工具、...

    《Oracle数据库系统》多媒体课件

    4. **Oracle体系结构**:探索Oracle数据库的物理和逻辑结构,包括表空间、数据文件、控制文件、重做日志、回滚段等组成部分。 5. **数据库实例与内存结构**:理解SGA(System Global Area)和PGA(Program Global ...

    oracle数据库教案

    Oracle数据库系统中存在多种类型的用户,每种用户具有不同的权限和职责: - **超级管理员**:`sys/change_on_install`,拥有最高的权限,能够执行所有数据库操作,包括但不限于数据库的启动、关闭以及对数据库架构...

    基于广播电视信息安全等级保护要求的Oracle数据库用户及权限加固方法探索.pdf

    【Oracle 数据库用户及权限加固方法】在广播电视台的信息安全等级保护中,Oracle数据库作为核心组件,其安全性至关重要。为了满足国家和广电行业的信息安全等级保护基本要求,我们需要对Oracle数据库的用户管理和...

    oracle数据库基础教程(英文版)

    Oracle数据库有强大的安全机制,包括用户权限管理、角色、审计和数据加密等功能。管理员可以设定用户访问权限,控制数据的访问级别,以保护敏感信息。 通过学习这个Oracle数据库基础教程,你将能够掌握数据库的基本...

    Oracle数据库学习资料

    本资料集是我在中软学习期间整理的一系列关于Oracle数据库的学习资源,旨在帮助初学者和进阶者深入理解Oracle的核心概念和技术。 首先,Oracle数据库的基础知识包括数据库的概念、数据模型以及SQL语言。数据库是...

    最好最全的Oracle 数据库教程(内含命令使用实例)

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。它提供了丰富的功能,包括数据存储、...在学习过程中,不断实践和探索,理论结合实际,相信你一定能够熟练掌握Oracle数据库。

    JAVA WEB 项目 Oracle数据库技术

    在JAVA WEB项目开发中,Oracle数据库技术扮演着至关重要的角色,它是存储和管理应用程序数据的主要平台。Oracle数据库是世界上最广泛使用的数据库系统之一,尤其在企业级应用中深受青睐。本教程将深入探讨如何在JAVA...

    ( Oracle数据库基础教程

    Oracle数据库中的主要对象包括表、视图、索引、存储过程、函数、触发器和游标等。理解这些对象的性质和用途是数据库管理的基础,例如,表用于存储数据,视图提供虚拟表,索引提高查询速度,而存储过程和函数可以封装...

    Oracle数据库学习教程

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着重要的地位。本教程涵盖了Oracle数据库的基础知识,PL/...在实践中不断探索和深化理解,你将能够熟练驾驭Oracle数据库这一强大的工具。

    Oracle数据库学习 06Days

    在这个"Oracle数据库学习 06Days"的学习资料中,我们可以期待深入探索Oracle数据库的各个方面。 1. **数据库基础** - 数据库概念:了解数据库是什么,以及它如何存储和管理数据。 - Oracle版本:Oracle的不同版本...

    ORACLE数据库知识、操作方法。安装ORACLE

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,它由甲骨文公司(Oracle Corporation)开发和维护。...Oracle数据库的学习是一个不断探索和实践的过程,只有通过实践才能真正掌握其精髓。

    Oracle数据库经典之作

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级数据存储、管理和分析中扮演着核心角色。作为Oracle数据库的经典之作,这份文档无疑是学习Oracle技术的重要资源。它旨在帮助读者深入理解Oracle的...

    oracle数据库入门学习.pdf

    Oracle数据库是世界上最流行的数据库管理系统之一,尤其在企业级应用中占据重要地位。本文将针对初学者,详细介绍如何入门Oracle数据库的学习,以及Oracle 10g的安装过程。 首先,学习Oracle数据库并不像许多人想象...

    Oracle 11g数据库基础教程_课件及安装方法

    Oracle 11g是Oracle数据库的第11个主要版本,它提供了强大的数据存储、管理和分析功能。该版本引入了许多新特性,包括高级压缩、自动存储优化、实时应用集群文件系统等,旨在提升性能、可用性和安全性。Oracle 11g...

Global site tag (gtag.js) - Google Analytics