资源预览内容
第1页 / 共53页
第2页 / 共53页
第3页 / 共53页
第4页 / 共53页
第5页 / 共53页
第6页 / 共53页
第7页 / 共53页
第8页 / 共53页
第9页 / 共53页
第10页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
在线教务辅导网:在线教务辅导网:http:/www.shangfuwang.com教材其余课件及动画素材请查阅在线教务辅导网教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187 或者直接输入下面地址:或者直接输入下面地址:http:/shop106150152.taobao.com1Oracle 11g数据库应用教程2第第13章章 安全性管理安全性管理本章概述 本章的学习目标主要内容3本章概述本章概述 安全性是衡量数据安全性是衡量数据库产品性能的重要指品性能的重要指标。本章介。本章介绍Oracle 11g数据数据库的安全管理机制,内容包括用的安全管理机制,内容包括用户管理,管理,权限限管理,角色管理,数据管理,角色管理,数据库审计等等。4 本章的学本章的学习目目标: 了解用了解用户、权限、角色的概念及作用限、角色的概念及作用 学会学会创建、修改、建、修改、删除用除用户 学会将系学会将系统权限和限和对象象权限授予用限授予用户,以及回收,以及回收权限限 学会使用系学会使用系统预定定义角色,学会角色,学会创建自定建自定义角色,以及角色,以及角色角色权限的授予和回收限的授予和回收 了解数据了解数据库审计的概念及作用的概念及作用5主要内容主要内容13.1 概述概述13.2 用用户管理管理13.3 权限管理限管理13.4 角色管理角色管理13.5数据数据库审计13.6小小结13.7习题6 安全性在数据安全性在数据库管理中占据重要的位置,没有完善的安管理中占据重要的位置,没有完善的安全机制的保全机制的保护,可能会,可能会导致数据的泄露、致数据的泄露、损坏或坏或丢失,因此安失,因此安全性一直是数据全性一直是数据库产品性能的重要衡量指品性能的重要衡量指标之一。之一。Oracle数据数据库的安全管理是从用的安全管理是从用户登登录数据数据库就开始的。数据就开始的。数据库访问的安的安全性主要包括两个方面的含全性主要包括两个方面的含义:一是阻止未授:一是阻止未授权用用户访问数据数据库;二是每个数据;二是每个数据库用用户都有不同的操作都有不同的操作权限,用限,用户在数据在数据库中的操作将被限制在其中的操作将被限制在其权限范限范围内。内。 在在Oracle数据数据库中,用中,用户的身份通常被划分的身份通常被划分为数据数据库管理管理员和开和开发人人员,其中数据,其中数据库管理管理员承担管理数据承担管理数据库的的责任,包括安全性管理、任,包括安全性管理、调优、备份策略的制定、数据份策略的制定、数据库出出现故障故障时的数据恢复、保的数据恢复、保证数据数据库的可的可用性等。用性等。软件系件系统的开的开发人人员作作为数据数据库管理管理员之外的一之外的一类使用者,承使用者,承担担软件开件开发的的职责,对数据数据库的的访问要求及技能掌握要求比数据要求及技能掌握要求比数据库管理管理员低,他低,他们需要熟需要熟练掌握的掌握的SQL及及PL/SQL的操作技能,能的操作技能,能够快速及高效快速及高效率地完成率地完成对数据数据库的操作需求,的操作需求,对调优和和备份恢复等操作通常不参与。份恢复等操作通常不参与。所以,数据所以,数据库的安全管理通常属于数据的安全管理通常属于数据库管理管理员的的职责,DBA可以通可以通过管理用管理用户、角色以及、角色以及权限来控制数据限来控制数据库的安全。但的安全。但对于于软件开件开发人人员来来说,掌握一些安全机制及,掌握一些安全机制及处理方式也是有必要的。理方式也是有必要的。7主要内容主要内容13.1 概述概述13.2 用用户管理管理13.3 权限管理限管理13.4 角色管理角色管理13.5数据数据库审计13.6小小结13.7习题813.2 用用户管理管理 用用户是数据是数据库的使用者和管理者,用的使用者和管理者,用户管理是管理是Oracle数据数据库安全管理的核心和基安全管理的核心和基础。每个。每个连接到数据接到数据库的用的用户都必都必须是系是系统的合法用的合法用户,用,用户要想使用要想使用Oracle的系的系统资源(源(查询数据、数据、创建建表等),就必表等),就必须要要拥有相有相应的的权限。限。Oracle数据数据库的用的用户管理包括管理包括创建用建用户、修改用、修改用户的安全参数、的安全参数、删除用除用户和和查询用用户信息等。信息等。913.2.1 初始用初始用户户 在在创建建Oracle数据数据库时会自会自动创建一些用建一些用户,例如,例如SYS、SYSTEM、SCOTT等,除了等,除了SYS、SYSTEM这两个初始合法两个初始合法的管理的管理员,其余用,其余用户在在创建后建后处于于锁定状定状态,需要在安装,需要在安装时或者安装后或者安装后对其解其解锁并重新并重新设定口令。定口令。这些初始用些初始用户有其自有其自身的身的职责和特点,和特点,软件件项目一般不建目一般不建议使用使用这些初始用些初始用户。即即针对不同的不同的项目,目,应该由管理由管理员分配不同的用分配不同的用户,在开,在开发过程中,程中,SCOTT用用户可以用来可以用来测试数据数据库的可用性。的可用性。 l SYS:是数据:是数据库中具有最高中具有最高权限的数据限的数据库管理管理员,可以,可以启启动、修改和关、修改和关闭数据数据库,拥有数据字典。有数据字典。 l SYSTEM:是:是辅助数据助数据库管理管理员,不能启,不能启动和关和关闭数据数据库,可以,可以进行一些其他的管理工作,例如行一些其他的管理工作,例如创建用建用户、删除用除用户等。等。 l SCOTT:数据:数据库的的测试用用户,默,默认口令口令为tiger。在。在该用用户下已下已经创建了一些数据表,用于用建了一些数据表,用于用户学学习及及测试网网络连接,包括:接,包括:EMP表、表、DEPT表等。表等。1013.2.2 相关属性相关属性和用和用户相关的属性包括以下几种。相关的属性包括以下几种。(1)用)用户身份身份认证方式方式在用在用户连接数据接数据库时,必,必须经过身份身份认证。Oracle数据数据库用用户有有3种身份种身份认证。u数据数据库身份身份认证:这种方式即用种方式即用户名名/口令方式,用口令方式,用户口口令以加密方式保存在数据令以加密方式保存在数据库内部,用内部,用户连接数据接数据库时必必须输入用入用户名和口令,通名和口令,通过数据数据库认证后才能登后才能登录数据数据库。这是默是默认的的认证方式。方式。u外部身份外部身份认证:用:用户账户由由Oracle数据数据库管理,但口令管管理,但口令管理和身份理和身份验证由外部服由外部服务完成,外部服完成,外部服务可以是操作系可以是操作系统或网或网络服服务。当用。当用户试图建立与数据建立与数据库的的连接接时,数据,数据库不会要求用不会要求用户输入用入用户名和口令,而从外部服名和口令,而从外部服务中中获取当取当前用前用户的登的登录信息。信息。这种方式比种方式比较适合在局域网适合在局域网环境下,境下,连接接简单,不需要提供用,不需要提供用户名和口令,但是需要在名和口令,但是需要在创建用建用户时做一些相做一些相应的配置。的配置。11u全局身份全局身份认证:当用:当用户试图建立与数据建立与数据库的的连接接时,Oracle使用网使用网络中的安全管理服中的安全管理服务器(器(Oracle Enterprise Security Manager)对用用户进行身份行身份认证。和外部身份。和外部身份认证相同,用相同,用户账户由数据由数据库管理,但管理,但Oracle不保存口令,当用不保存口令,当用户登登录时,需要通,需要通过网网络服服务验证。Oracle的安全管理服的安全管理服务器可以提供全局范器可以提供全局范围内管理数据内管理数据库用用户的功能。的功能。(2)表空)表空间配配额表空表空间配配额限制用限制用户在永久表空在永久表空间中可用的存中可用的存储空空间大小,大小,默默认情况下,新用情况下,新用户在任何表空在任何表空间中都没有任何配中都没有任何配额。用。用户在在临时表空表空间中不需要配中不需要配额。 (3)默)默认表空表空间用用户在在创建数据建数据库对象象时,如果没有,如果没有显示指明示指明该对象在哪象在哪个空个空间,那么系,那么系统会将会将该对象自象自动存存储在用在用户的默的默认表空表空间中,即中,即SYSTEM表空表空间。一般不建。一般不建议将用将用户的的对象建立在象建立在SYSTEM表空表空间中,所以默中,所以默认表空表空间应指定。指定。12 (4) 临时表空表空间 如果用如果用户执行一些操作例如排序、行一些操作例如排序、汇总和表和表间连接等,接等,系系统会首先使用内存中的排序区会首先使用内存中的排序区SORT_AREA_SIZE,如果,如果这块排序区大小不排序区大小不够,则将使用用将使用用户的的临时表空表空间。一般使。一般使用系用系统默默认临时表空表空间TEMP作作为用用户的默的默认临时表空表空间。 (5)账户状状态 在在创建用建用户时,可以,可以设定用定用户的初始状的初始状态,包括用,包括用户口令是否口令是否过期、用期、用户账户是否是否锁定等。已定等。已锁定的用定的用户不能不能访问数据数据库,必,必须由管理由管理员进行解行解锁后才允后才允许访问。数据。数据库管管理理员可以随可以随时锁定定账户或解除或解除锁定。定。 (6)资源配置源配置 每个用每个用户都有一个都有一个资源配置,如果源配置,如果创建用建用户时没有指没有指定,定,Oracle会会为用用户指定默指定默认的的资源配置。源配置。资源配置的作用源配置的作用是是对数据数据库系系统资源的使用加以限制,源的使用加以限制,这些些资源包括:口令源包括:口令是否是否过期,口令期,口令输入入错误几次后几次后锁定定该用用户,CPU时间,输入入/输出(出(I/O)以及用)以及用户打开的会打开的会话数目等。数目等。1313.2.3 创建用建用户创建数据建数据库用用户的的语法如下:法如下:CREATE USER userIDENTIFIED BY passwore | EXTERNALLYDEFAULT TABLESPACE tablespace TEMPORARY TABLESPACE tablespaceQUOTA integer K | M | UNLIMITED ON tablespaceQUOTA integer K | M | UNLIMITED ON tablespacePASSWORD EXPIREACCOUNT LOCK | UNLOCKPROFILE profile | DEFAULT14参数说明:参数说明:user:要创建的用户名;:要创建的用户名;BY password:用户通过数据库验证方式登录,登录时:用户通过数据库验证方式登录,登录时需要提供的口令;需要提供的口令;EXTERNALLY:用户需要通过操作系统验证;:用户需要通过操作系统验证;DEFAULT或或TEMPORARY TABLESPACE:为用户指定:为用户指定默认或临时表空间;默认或临时表空间;QUOTA:定义在表空间中允许用户使用的最大空间,可:定义在表空间中允许用户使用的最大空间,可将限额定义为整数字节或千字节将限额定义为整数字节或千字节/兆字节。其中关键字兆字节。其中关键字UNLIMITED用户指定用户可以使用表空间中全部可用空用户指定用户可以使用表空间中全部可用空间;间;PASSWORD EXPIRE:强制用户在使用:强制用户在使用SQL*Plus登录登录到数据库时重置口令(该选项仅在用户通过数据库进行验到数据库时重置口令(该选项仅在用户通过数据库进行验证时有效);证时有效);ACCOUNT LOCK | UNLOCK:可用于显示锁定或解除:可用于显示锁定或解除锁定用户账户(锁定用户账户(UNLOCK为缺省设置);为缺省设置);PROFILE:指定用户的资源配置。:指定用户的资源配置。15【例例13-1】创建用建用户rose,口令,口令为zzuli,默,默认表空表空间为USERS,在,在该表空表空间的配的配额为50MB。口令。口令设置置为过期状期状态,即首次即首次连接数据接数据库时需要修改口令。需要修改口令。(如果在如果在SQL Plus中中创建用建用户成功,最后会成功,最后会显示个示个 用用户已已创建。建。 之之类的,最好写的,最好写在例在例题下面,表示下面,表示这是运行成功的代是运行成功的代码,你,你实验一下,看看一下,看看创建完建完结果是什么,写到下面。后面的例果是什么,写到下面。后面的例题都是都是这样的吧的吧)SQLCREATE USER rose IDENTIFIED BY zzuli2 DEFAULT TABLESPACE USERS3 QUOTA 50M ON USERS4 PASSWORD EXPIRE;用用户已已创建。建。1613.2.4 修改用修改用户 用用户创建后,可以更改用建后,可以更改用户的属性,如口令、默的属性,如口令、默认表空表空间、临时表空表空间、表空、表空间配配额、概要文件和用、概要文件和用户状状态等。但不允等。但不允许修改用修改用户的名称,除非将其的名称,除非将其删除。除。修改数据修改数据库用用户使用使用ALTER USER语句来句来实现,ALTER USER语句的句的语法格式法格式为:ALTER USER user_name IDENTIFIEDBY PASSWORD | EXTERNALLY | GOLBALLY AS external_nameDEFAULT TABLESPACE tablespace_nameTEMPORARY TABLESPACE temp_tempspace_nameQUOTA n K | M | UNLIMITED ON tablespace_namePROFILE profile_nameDEFAULT ROLE role_list | ALL EXCEPT role_list | NONEPASSWORD EXPIREACCOUNT LOCK | UNLOCK;17对其中的参数其中的参数说明如下。明如下。l role_list:角色列表:角色列表l ALL:表示所有角色:表示所有角色l EXCEPT role_list:表示除了:表示除了role_list列表中角色以外的列表中角色以外的其他角色。其他角色。l NONE:表示没有默:表示没有默认角色。角色。 【例【例13-2】 修改用修改用户atea的默的默认表空表空间为USERS,在,在该表空表空间的配的配额为100MB,在,在USERS表空表空间的配的配额为30MB。命令如下:。命令如下:SQLALTER USER atea2 DEFAULT TABLESPACE USERS3 QUOTA 30M ON USERS;1813.2.5 删除用除用户 当一个用当一个用户不再使用不再使用时,可以将其,可以将其删除。除。删除用除用户的的语法:法:DROP USER user_name CASCADE执行行该语句的用句的用户必必须具有具有DROP USER的系的系统权限。限。删除除用用户时需要注意如下几点:需要注意如下几点:(1)如果用)如果用户方案中包括任何方案中包括任何对象,在象,在删除用除用户时,必,必须加上加上CASCADE短短语,Oracle数据数据库会先会先删除除该用用户的所的所有有对象,然后再象,然后再删除除该用用户。(2)如果用)如果用户当前正与当前正与Oracle服服务器器连接,接,则不能不能删除。除。【例【例13-3】删除用除用户atea。SQLDROP USER atea; -如果如果atea用用户的方案的方案中没有中没有对象象 SQLDROP USER atea CASCADE; -如果如果atea用用户的方案中有的方案中有对象象1913.2.6 查询用用户信息信息 如果要如果要获取用取用户信息,可以通信息,可以通过查询数据字典数据字典视图或或动态性能性能视图来来实现。 ALL_USERS:包含数据:包含数据库所有用所有用户的用的用户名、用名、用户ID和和用用户创建建时间。 DBA_USERS:包含数据:包含数据库所有用所有用户的的详细信息。信息。 USER_USERS:包含当前用:包含当前用户的的详细信息。信息。 DBA_TS_QUOTAS:包含所有用:包含所有用户的表空的表空间配配额信息。信息。 USER_TS_QUOTAS:包含当前用:包含当前用户的表空的表空间配配额信息。信息。 V$SESSION:包含用:包含用户会会话信息。信息。 V$OPEN_CURSOR:包含用:包含用户执行的行的SQL语句信息。句信息。 【例【例13-4】查找所有用找所有用户的默的默认表空表空间。(。(查找的找的结果果应该截截图,显示在下面)示在下面)SQLSELECT user_name, default_tablespace 2 FROM dba_users;20主要内容主要内容13.1 概述概述13.2 用用户管理管理13.3 权限管理限管理13.4 角色管理角色管理13.5 数据数据库审计13.6 小小结13.7 习题21 在用在用户创建完成后,建完成后,仅仅表示表示该用用户在在Oracle系系统中中进行了注册而已,行了注册而已,这样的用的用户既不能既不能连接到数据接到数据库,更,更谈不上不上进行行查询、建表等操作。要使、建表等操作。要使该用用户能能够连接到接到Oracle系系统并能使用并能使用Oracle的的资源,如源,如查询表的数据,表的数据,创建自己的表建自己的表结构等,必构等,必须由具有由具有DBA角色的用角色的用户对该用用户进行授行授权。2213.3.1 权限概述限概述 权限是指限是指执行特定行特定类型的型的SQL语句或句或访问另一个用另一个用户的的对象的象的权利,例如:利,例如:连接到数据接到数据库,创建表,建表,查询其他用其他用户的的表,表,调用其他用用其他用户的存的存储过程等。程等。Oracle数据数据库使用使用权限来控限来控制用制用户对数据的数据的访问和用和用户所能所能执行的操作。用行的操作。用户在数据在数据库中可以中可以执行什么行什么样的操作,以及可以的操作,以及可以对哪些哪些对象象进行操作,行操作,完全取决于完全取决于该用用户所所拥有的有的权限。限。 根据系根据系统管理方式的不同,在管理方式的不同,在Oracle数据数据库中将中将权限分限分为两大两大类,系,系统权限和限和对象象权限。限。 系系统权限指数据限指数据库级别执行某些操作的行某些操作的权限,即用限,即用户执行行某一特定的数据某一特定的数据库操作或某操作或某类数据数据库操作等的操作等的权限,例如限,例如创建表空建表空间,创建会建会话等。等。23 对象象权限是指限是指对数据数据库中的特定中的特定对象(例如表、象(例如表、视图、序列、序列、过程、函数或程序包)的程、函数或程序包)的访问控制,以及用控制,以及用户可以可以在在这些数据些数据库对象上象上执行哪些操作。例如插入表行哪些操作。例如插入表记录,增,增加加约束条件等。束条件等。 无无论系系统权限限还是是对象象权限,在限,在Oracle数据数据库中,中,将将权限授予用限授予用户的方式有直接授的方式有直接授权和和间接授接授权两种。所两种。所谓直接授直接授权就是利用就是利用GRANT命令直接命令直接为用用户授授权,间接授接授权就是先将就是先将权限授予角色,再将角色授予用限授予角色,再将角色授予用户。另外,已。另外,已经获得某种得某种权限的用限的用户可以将他可以将他们的的权限或其中一部分限或其中一部分权限再授予其他用限再授予其他用户。2413.3.2 系系统权限管理限管理 在在Orcale 11g 中含有中含有200多种系多种系统权限,每种系限,每种系统权限都限都为用用户提供了提供了执行某一种或某一行某一种或某一类数据数据库操作的能力,操作的能力,可以将系可以将系统权限授予用限授予用户和角色。由于系和角色。由于系统权限可能影响限可能影响到整个数据到整个数据库,所有授予系,所有授予系统权限限给用用户时需要慎重。需要慎重。1授予系授予系统权限限 系系统管理管理员给用用户授授权时,应该考考虑到不同用到不同用户的的身份。例如数据身份。例如数据库管理管理员用用户应该具有具有创建用建用户、修改用、修改用户权限、限、创建表空建表空间以及可以以及可以对数据数据库任何模式中的任何模式中的对象象进行管理的行管理的权限,而数据限,而数据库开开发人人员应该具有在自己的方具有在自己的方案中案中创建表、建表、视图、过程等的程等的权限。另外一些普通用限。另外一些普通用户应该只只赋予予CREATE SESSION的的权限。限。25授予系授予系统权限的限的语法:法:GRANT system_privilege | role,system_privilege | roleTO user | role | PUBLIC, user | role | PUBLIC WITH ADMIN OPTION参数参数说明:明:l system_privilege:要授予的系:要授予的系统权限限l user:被授予:被授予权限的用限的用户l role:被授予的角色名:被授予的角色名l PUBLIC:将系:将系统权限授予所有用限授予所有用户l WITH ADMIN OPTION:允:允许被授予者被授予者进一步一步为其他其他用用户或角色授予或角色授予权限或角色。当授限或角色。当授权时带有有这个子句个子句时,用用户才可以将才可以将获得的系得的系统权限再授予其他用限再授予其他用户,即系,即系统权限的限的传递性。性。26【例【例13-5】数据】数据库管理管理员授予授予CREATE SESSION权限限给用用户atea。SQLGRANT CREATE SESSION TO atea;2.系系统权限收回限收回 一般用一般用户被授予被授予过高的高的权限可能会限可能会给Oracle系系统带来来安全安全隐患。作患。作为Oracle系系统管理管理员,应该会会查询当前当前Oracle系系统中各个用中各个用户的的权限,并且能限,并且能够使用使用REVOKE命令撤命令撤销用用户的某些不必要的系的某些不必要的系统权限。限。可以使用可以使用REVOKE语句撤句撤销系系统权限。限。REVOKE system_privilege | role ,system_privilege | roleFROM user | role | PUBLIC, user | role | PUBLIC REVOKE语句中的参数和句中的参数和GRANT语句中相同。句中相同。27 【例【例13-6】收回用】收回用户atea的的CREATE SESSION权限限SQLREVOKE CREATE SESSION FROM atea; 需要需要说明的是,如果数据明的是,如果数据库管理管理员使用了使用了GRANT语句句给用用户A授予系授予系统权限限时带有有WITH ADMIN OPTION选项,则该用用户A有有权将系将系统权限再次授予其他限再次授予其他的用的用户B。在。在这种情况下,如果数据种情况下,如果数据库管理管理员使用使用REVOKE命令撤命令撤销A用用户的系的系统权限限时,用,用户B的系的系统授授权仍然有效。仍然有效。13.3.3 对象象权限管理限管理 对象权限是一种对于特定对象(表、视图、序列、过对象权限是一种对于特定对象(表、视图、序列、过程、函数或程序包等)执行特定操作的一种权限。数据库程、函数或程序包等)执行特定操作的一种权限。数据库用户拥有对自己的对象的所有对象权限,所以对象权限的用户拥有对自己的对象的所有对象权限,所以对象权限的管理实际上即是对象所有者对其他用户操作该对象的权限管理实际上即是对象所有者对其他用户操作该对象的权限管理。管理。281. 授予授予对象象权限限授予授予对象象权限的限的语法:法:GRANT object_privilege (column_list),object_privilege (column_list)| ALL PRIVILEGESON schema. objectTO user | role | PUBLIC , user | role | PUBLIC WITH GRANT OPTION其中参数其中参数说明如下:明如下:l object_privilege:表示要授予的:表示要授予的对象象权限;限;l column_list:指定表或:指定表或视图列;列;l ALL:将所有:将所有权限授予那些已被授予限授予那些已被授予WITH GRANT OPTION的的对象;象;l ON object:object表示将要被授予表示将要被授予权限的目限的目标对象;象;l Role:角色名;:角色名;l User:被授予的用:被授予的用户名;名;l WITH GRANT OPTION:表示被授予者可再将:表示被授予者可再将对象象权限限授予其他用授予其他用户。29【例【例13-7】 将将SELECT、INSERT、DELETE授授权给atea用用户。SQLGRANT SELECT, INSERT,DELETE ON emp TO atea;2. 对象象权限回收限回收 要从用要从用户或者角色中撤或者角色中撤销对象象权限,仍然要使用限,仍然要使用REVOKE命令来完成。要撤命令来完成。要撤销对象象权限,撤限,撤销者必者必须是将是将被撤被撤销的的对象象权限的原始授予者。撤限的原始授予者。撤销对象象权限的限的语法:法:REVOKE object_privilege, object_privilege| ALL PRIVILEGESON schema. objectFROM user | role | PUBLIC, user | role | PUBLIC CASCADE CONSTRAINTS30其中参数其中参数说明如下:明如下:l object_privilege:指定将撤:指定将撤销的的对象象权限;限;l ALL:撤:撤销已授予用已授予用户的所有的所有对象象权限;限;l ON:标识将撤将撤销其其对象象权限的限的对象;象;l FROM:标识将撤将撤销其其对象象权限的用限的用户或角色;或角色;l CASCADE CONSTRAINTS:删除撤除撤销使用使用REFERENCES或或ALL权限定限定义的任何引用完整性的任何引用完整性约束限制;束限制; 【例【例13-8】从】从atea用用户撤撤销emp对象的所有象的所有权限。限。SQLREVOKE ALL ON emp FROM atea; 需要注意的是,如果数据需要注意的是,如果数据库管理管理员使用使用GRANT命令命令给用用户A授予授予对象象权限限时带有有WITH ADMIN OPTION选项,则该用用户A有有权将将权限再次授予其他的用限再次授予其他的用户B。在。在这种情况下,种情况下,如果数据如果数据库管理管理员使用使用REVOKE命令撤命令撤销A用用户的的对象象权限限时,用,用户B的的对象象权限也被撤限也被撤销。需要注意,在。需要注意,在进行系行系统权限限回收和回收和进行行对象象权限回收限回收时,效果是不一,效果是不一样的。的。3113.3.4 权限限查询 用用户被授予的系被授予的系统权限或者限或者对象象权限都被限都被记录在在Oracle的数据字典中,了解某个用的数据字典中,了解某个用户被授予哪些系被授予哪些系统权限和限和对象象权限是确保限是确保应用系用系统安全的重要工作。如表安全的重要工作。如表13-1所示所示为Oracle11g用于存放用用于存放用户、系、系统权限和限和对象象权限有关的数据字限有关的数据字典。典。【例例13-9】查询所有的所有的对象象权限。(限。(查找的找的结果果应该截截图粘粘贴在下面)在下面)SQLSELECT * FROM dba_tab_privs;32主要内容主要内容13.1 概述概述13.2 用用户管理管理13.3 权限管理限管理13.4 角色管理角色管理13.5数据数据库审计13.6小小结13.7习题3313.4 角色管理角色管理 Oracle 中的中的权限分限分类很多,很多,设置十分复置十分复杂,就系,就系统权限限而言,在而言,在Oracle11g中就超中就超过了了200种,种,为数据数据库管理管理员正确有正确有效地管理数据效地管理数据库权限限带来了困来了困难,而角色就是,而角色就是简化化权限管理限管理的一种数据的一种数据库对象。象。13.4.1 角色概述角色概述 角色是权限管理的一种工具,是一系列权限的集合,角角色是权限管理的一种工具,是一系列权限的集合,角色可以被授予任何用户,也可以从用户中收回。色可以被授予任何用户,也可以从用户中收回。使用角色可以简化权限的管理,可以仅用一条语句就能从用使用角色可以简化权限的管理,可以仅用一条语句就能从用户那里授予或者回收许多权限,而不必对用户一一授权。使用户那里授予或者回收许多权限,而不必对用户一一授权。使用角色还可以实现权限的动态管理,比如随着应用的变化可以增角色还可以实现权限的动态管理,比如随着应用的变化可以增加或者减少角色的权限,这样通过改变角色权限,就改变了多加或者减少角色的权限,这样通过改变角色权限,就改变了多个用户的权限。个用户的权限。34 角色、用角色、用户及及权限是一限是一组有密切关系的有密切关系的对象,既然角象,既然角色是一色是一组权限的集合,那么他被授予某个用限的集合,那么他被授予某个用户时才能有意才能有意义,可以如,可以如图13-1所示帮助我所示帮助我们理解角色、用理解角色、用户及及权限的限的关系。关系。图13-1 用用户、角色和、角色和权限的关系限的关系35 在复在复杂的大型的大型应用系用系统,要求,要求对应用系用系统功能功能进行分行分类,从而形成角色的,从而形成角色的雏形,再使用形,再使用CREATE ROLE语句将句将它它们创建建为角色;最后根据用角色;最后根据用户工作的分工,将不同的角色工作的分工,将不同的角色(包括系(包括系统预定定义的角色)授予各的角色)授予各类用用户。如果。如果应用系用系统的的规模很小,用模很小,用户数也不多,数也不多,则可以直接将可以直接将应用的用的权限授予用限授予用户,即使是,即使是这样,用,用户也必也必须对Oracle系系统的的预定定义角色有角色有所了解。所了解。 角色所角色所对应的的权限集合中可以包含系限集合中可以包含系统权限和限和对象象权限。角色是可以授予另外一个角色的,需要避免将角色授限。角色是可以授予另外一个角色的,需要避免将角色授予它本身,也不能循予它本身,也不能循环授予。授予。13.4.2 创建角色建角色 如果系如果系统预定定义的角色不符合用的角色不符合用户的需要,数据的需要,数据库管管理理员还可以可以创建更多的角色。建更多的角色。创建用建用户自定自定义角色使用角色使用CREATE ROLE语句来句来实现。36创建角色建角色语句的句的语法格式如下:法格式如下:CREATE ROLE role_name NOT IDENTIFIED IDENTIFIED BY password;对其中的参数其中的参数说明如下:明如下:l role_name:用于指定自定:用于指定自定义角色名称,角色名称,该名称不能与任名称不能与任何用何用户名或其他角色相同。名或其他角色相同。l NOT IDENTIFIED:用:用户指定指定该角色由数据角色由数据库授授权,使,使该角色生效角色生效时不需要口令。不需要口令。l IDENTIFIED BY password:用于:用于设置角色生效置角色生效时的的认证口令。口令。【例例13-10】创建不建不验证的角色的角色doctor_clerkSQLCREATE ROLE doctor_clerk;【例例13-11】创建使用口令建使用口令验证的角色的角色SQLCREATE ROLE unit_clerk IDENTIFIED BY caption;【例例13-12】 创建外部建外部验证的角色的角色SQLCREATE ROLE unit_manager IDENTIFIED EXTERNALLY;3713.4.3 角色授角色授权权 当角色被建立后,没有任何当角色被建立后,没有任何权限,只有限,只有对其授予其授予权限,限,才有使用的意才有使用的意义。因此,在。因此,在创建角色后,通常建角色后,通常还需要立即需要立即为它授予它授予权限。可以通限。可以通过给用用户授授权的的GRANT语句句给角色授角色授权,并将角色并将角色赋予相予相应的数据的数据库用用户。角色角色权限的授予与回收和用限的授予与回收和用户权限的授予与回收限的授予与回收类似,似,语法法也与其相同。也与其相同。 【例【例13-13】为teller角色授予角色授予CREATE SESSION 和和CREATE DATABASE LINK权限限 SQLGRANT CREATE SESSION, CREATE DATABASE LINK to teller;对角色授角色授权后,就可以将角色授予某个用后,就可以将角色授予某个用户。 【例【例13-14】将】将teller角色授予用角色授予用户wang SQLGRANT teller TO wang;3813.4.4 角色的生效角色的生效/失效失效 当某角色生效当某角色生效时,属于角色的用,属于角色的用户可以可以执行行该角色所具角色所具有的所有有的所有权限操作,而当某角色失效限操作,而当某角色失效时,拥有有这个角色的用个角色的用户将不能将不能执行行该角色的任何角色的任何权限操作。因此,通限操作。因此,通过设置角色置角色的生效或失效,可以的生效或失效,可以动态改改变用用户的的权限。限。设置角色生效或失效使用置角色生效或失效使用SET ROLE语句,句,语法格式法格式为:SET ROLE role IDENTIFIED BY password, role IDENTIFIED BY password| ALL EXCEPT role , role| NONE39参数参数说明如下:明如下:l role:是角色的名称;:是角色的名称;l IDENTIFIED BY password:提供角色生效:提供角色生效时所需的口令;所需的口令;l ALL:除了:除了EXCEPT子句中列出的角色外,授予当前用子句中列出的角色外,授予当前用户的全部角色生效;的全部角色生效;l EXCEPT role:这些角色不生效;些角色不生效;l NONE:当前会:当前会话的全部角色失效(只有直接授予用的全部角色失效(只有直接授予用户的的权限是可用的)。限是可用的)。 角色的生效角色的生效针对的是会的是会话,在下一个会,在下一个会话中,用中,用户的的活活动角色将默角色将默认为默默认角色。角色。 如果角色如果角色设置了口令,置了口令,则SET ROLE命令中必命令中必须包含包含口令才能使角色生效。分配口令才能使角色生效。分配给用用户的默的默认角色不需要口令,角色不需要口令,这些角色同没有口令的角色一些角色同没有口令的角色一样在登在登录时生效。生效。40【例【例13-15】在当前会】在当前会话中使角色中使角色doctor_clerk生效。生效。SQLSET ROLE doctor_clerk; 【例【例13-16】在当前会】在当前会话中使除了中使除了unit_manager之外的所之外的所有角色生效。有角色生效。SQLSET ROLE ALL EXCEPT unit_manager; 【例【例13-17】设置当前用置当前用户所有角色失效。所有角色失效。SQLSET ROLE NONE;13.4.5 修改角色修改角色 修改角色修改角色时,只能修改角色生效或失效,只能修改角色生效或失效时的的认证方式,方式,也就是也就是说,是否必,是否必须经过Oracle确确认才允才允许对角色角色进行修改。行修改。而且,当前用而且,当前用户的角色必的角色必须通通过ADMIN选项进行授予,或行授予,或者当前用者当前用户必必须具有具有ALTER ANY ROLE系系统权限。限。修改角色的修改角色的语法:法:ALTER ROLE role NOT IDENTIFIED | IDENTIFIEDBY password | USING package | EXTERNALLY | GLOBALLY;41参数参数说明如下:明如下: l role:角色名称;:角色名称;l NOT IDENTIFIED:表明:表明该角色生效角色生效时,不需要,不需要进行行验证;l IDENTIFIED:表明:表明该角色生效角色生效时,需要,需要进行行验证;l BY password:提供角色生效:提供角色生效时所使用的口令;所使用的口令;l EXTERNALLY:表明:表明该角色生效之前,用角色生效之前,用户必必须由外由外部服部服务(例如操作系(例如操作系统或网或网络服服务)授)授权;l GLOBALLY:表明通:表明通过SET ROLE语句使角色生效之句使角色生效之前或登前或登录时,必,必须由企由企业目目录服服务授授权用用户使用使用该角色。角色。42【例【例13-18】修改角色】修改角色unit_clerk由外部由外部验证。 SQLALTER ROLE unit_clerk IDENTIFIED EXTERNALLY; 【例【例13-19】修改角色】修改角色unit_manager不不验证。SQLALTER ROLE unit_manager NOT IDENTIFIED; 【例【例13-20】修改角色】修改角色doctor_clerk验证密密码。SQLALTER ROLE doctor_clerk IDENTIFIED BY ORDER;13.4.6 删删除角色除角色 如果不再需要某个角色或者某个角色的如果不再需要某个角色或者某个角色的设置不太合理置不太合理时,就可以使用就可以使用DROP ROLE来来删除角色,使用除角色,使用该角色的用角色的用户的的权限同限同时也被回收。也被回收。删除用除用户一般由一般由DBA操作。操作。43删除角色的除角色的语法如下:法如下:DROP ROLE role;参数参数说明如下:明如下:l role:角色名称;:角色名称;【例例13-21】删除角色除角色unit_clerk。SQLDROP ROLE unit_clerk;13.4.7 查询查询角色信息角色信息 可以通可以通过查询数据字典或数据字典或动态性能性能视图获得数据得数据库角色的角色的相关信息。相关信息。l DBA_ROLES:数据:数据库中的所有角色及其描述;中的所有角色及其描述;l DBA_ROLES_PRIVS:授予用:授予用户和角色的角色信息;和角色的角色信息;l DBA_SYS_PRIVS:授予用:授予用户和角色的系和角色的系统权限;限;l USER_ROLE_PRIVS:为当前用当前用户授予的角色信息;授予的角色信息;l ROLE_ROLE_PRIVS:授予角色的角色信息;:授予角色的角色信息;44 l ROLE_SYS_PRIVS:授予角色的系:授予角色的系统权限信息;限信息;l ROLE_TAB_PRIVS:授予角色的:授予角色的对象象权限信息;限信息;l SESSION_PRIVS:当前会:当前会话所具有的系所具有的系统权限信息;限信息;l SESSION_ROLES:用:用户当前授当前授权的角色信息。的角色信息。【例【例13-22】查询用用户martha的角色及默的角色及默认角色。(角色。(应该有有截截图)SQLSELECT * FROM dba_roles_privs 2 WHERE grantee = MARTHA;【例【例13-23】查询DBA角色所具有的系角色所具有的系统权限信息。(限信息。(应该有截有截图)SQLSELECT * FROM ROLE_SYS_PRIVS 2 WHERE ROLE = DBA;45主要内容主要内容13.1 概述概述13.2 用用户管理管理13.3 权限管理限管理13.4 角色管理角色管理13.5数据数据库审计13.6小小结13.7习题4613.5数据数据库审计库审计 审计是是监视和和记录用用户对数据数据库所所进行的操作,以供行的操作,以供DBA进行行统计和分析。和分析。对于安全要求于安全要求较高的高的应用系用系统来来说,数据数据库管理管理员可以启用可以启用Oracle系系统提供的提供的审计机制,以机制,以满足足最最终客客户对安全的需求。安全的需求。 Oracle数据数据库系系统提供提供对其内部所其内部所发生的活生的活动进行行审计的功能,也就是的功能,也就是Oracle系系统对任何用任何用户进行的登行的登录、操作、操作数据数据库对象象进行自行自动登登记,以方便数据,以方便数据库管理者在事后管理者在事后进行行监督和督和检查。47通常通常对以下以下3种情况种情况进行行审计,如表,如表13-2所示。所示。【例例13-24】启启动数据数据库的的审计功能功能ALTER SYSTEM SET audit_trail = DB SCOPE = SPFILE;SHUTDOWN IMMEDIATESTARTUP48主要内容主要内容13.1 概述概述13.2 用用户管理管理13.3 权限管理限管理13.4 角色管理角色管理13.5数据数据库审计13.6小小结13.7习题49 13.6小小结结 本章主要介本章主要介绍了了Oracle数据数据库的安全管理机制,包括的安全管理机制,包括用用户管理、管理、权限管理、角色管理和数据限管理、角色管理和数据库审计等。确保等。确保Oracle数据数据库系系统的可用性和安全性是的可用性和安全性是DBA的主要的主要职责,Oracle数据数据库安全管理是以用安全管理是以用户为核心核心进行的,包括用行的,包括用户的的创建、建、权限的授予与回收、限的授予与回收、对用用户占用占用资源的限制和口源的限制和口令管理等。令管理等。50主要内容主要内容13.1 概述概述13.2 用用户管理管理13.3 权限管理限管理13.4 角色管理角色管理13.5数据数据库审计13.6小小结13.7习题5113.7习题一、一、 选择题1. create user命令中的命令中的default tablespace语句用于下列哪种句用于下列哪种设置?()置?()A用用户创建的数据建的数据库对象象 B. 用用户创建的建的临时对象象C用用户创建的系建的系统对象象 D. 上面都不上面都不对 2撤撤销用用户指定指定权限的命令是()。限的命令是()。AREVOKE B. REMOVE RIGHT C. DROP RIGHT D. DELETE RIGHT3. 哪一种操作受表空哪一种操作受表空间配配额的限制?()的限制?() A. UPDATE B. DELETE C. CREATE D. 以上全以上全是是4. 拥有所有系有所有系统级管理管理权限的角色是()。限的角色是()。 A. ADMIN B. SYSTEM C. SYSMAN D. DBA52二、操作二、操作题1. 简述用述用户和角色的关系。和角色的关系。2. 创建一个口令建一个口令认证的数据的数据库用用户usera_exer,口令,口令为usera,默,默认表空表空间为USERS,配,配额为10MB,初始,初始账户为锁定状定状态。3. 将将创建的建的usera_exer用用户解解锁。4. 为usera_exer用用户授予授予CREATE SESSION权限、限、scott.enp的的SELECT权限和限和UPDATE权限,同限,同时允允许该用用户将将获得的得的权限授予其他用限授予其他用户。5. 创建名建名为Manager的角色,的角色,该角色角色拥有有创建表、建表、视图,并能并能够从从scott的的dept表表进行行SELECT的操作。的操作。6. 将将CONNECT角色、角色、RESOURCE角色和角色和Manager角色角色分配分配给usera_exer用用户,并,并设置置usera_exer用用户的默的默认角色角色是是RESOURCE.。53
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号