Oracle-Database-11g应用与开发教程-教学课件-978-7-302-31490-5-第13章-安全性管理.ppt

上传人:醉**** 文档编号:15187599 上传时间:2022-05-11 格式:PPT 页数:53 大小:451KB
返回 下载 相关 举报
Oracle-Database-11g应用与开发教程-教学课件-978-7-302-31490-5-第13章-安全性管理.ppt_第1页
第1页 / 共53页
Oracle-Database-11g应用与开发教程-教学课件-978-7-302-31490-5-第13章-安全性管理.ppt_第2页
第2页 / 共53页
点击查看更多>>
资源描述

《Oracle-Database-11g应用与开发教程-教学课件-978-7-302-31490-5-第13章-安全性管理.ppt》由会员分享,可在线阅读,更多相关《Oracle-Database-11g应用与开发教程-教学课件-978-7-302-31490-5-第13章-安全性管理.ppt(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第1页在线教务辅导网:在线教务辅导网:http:/教材其余课件及动画素材请查阅在线教务辅导网教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187 或者直接输入下面地址:或者直接输入下面地址:http:/第2页第3页第第13章章 安全性管理安全性管理本章概述 本章的学习目标主要内容第4页本章概述本章概述 安全性是衡量数据库产品性能的重要指标。本章介绍安全性是衡量数据库产品性能的重要指标。本章介绍Oracle 11g数据库的安全管理机制,内容包括用户管理,权数据库的安全管理机制,内容包括用户管理,权限管理,角色管理,数据库审计等限管理,角色管理,数据库审计等。第5页 本章的学习目标:

2、本章的学习目标: 了解用户、权限、角色的概念及作用了解用户、权限、角色的概念及作用 学会创建、修改、删除用户学会创建、修改、删除用户 学会将系统权限和对象权限授予用户,以及回收权限学会将系统权限和对象权限授予用户,以及回收权限 学会使用系统预定义角色,学会创建自定义角色,以学会使用系统预定义角色,学会创建自定义角色,以及角色权限的授予和回收及角色权限的授予和回收 了解数据库审计的概念及作用了解数据库审计的概念及作用第6页主要内容主要内容13.1 概述概述13.2 用户管理用户管理13.3 权限管理权限管理13.4 角色管理角色管理13.5数据库审计数据库审计13.6小结小结13.7习题习题第7

3、页 安全性在数据库管理中占据重要的位置,没有完善的安安全性在数据库管理中占据重要的位置,没有完善的安全机制的保护,可能会导致数据的泄露、损坏或丢失,因此全机制的保护,可能会导致数据的泄露、损坏或丢失,因此安全性一直是数据库产品性能的重要衡量指标之一。安全性一直是数据库产品性能的重要衡量指标之一。Oracle数数据库的安全管理是从用户登录数据库就开始的。数据库访问据库的安全管理是从用户登录数据库就开始的。数据库访问的安全性主要包括两个方面的含义:一是阻止未授权用户访的安全性主要包括两个方面的含义:一是阻止未授权用户访问数据库;二是每个数据库用户都有不同的操作权限,用户问数据库;二是每个数据库用户

4、都有不同的操作权限,用户在数据库中的操作将被限制在其权限范围内。在数据库中的操作将被限制在其权限范围内。 在在Oracle数据库中,用户的身份通常被划分为数据库管理员和开发数据库中,用户的身份通常被划分为数据库管理员和开发人员,其中数据库管理员承担管理数据库的责任,包括安全性管理、调人员,其中数据库管理员承担管理数据库的责任,包括安全性管理、调优、备份策略的制定、数据库出现故障时的数据恢复、保证数据库的可优、备份策略的制定、数据库出现故障时的数据恢复、保证数据库的可用性等。软件系统的开发人员作为数据库管理员之外的一类使用者,承用性等。软件系统的开发人员作为数据库管理员之外的一类使用者,承担软件

5、开发的职责,对数据库的访问要求及技能掌握要求比数据库管理担软件开发的职责,对数据库的访问要求及技能掌握要求比数据库管理员低,他们需要熟练掌握的员低,他们需要熟练掌握的SQL及及PL/SQL的操作技能,能够快速及高效的操作技能,能够快速及高效率地完成对数据库的操作需求,对调优和备份恢复等操作通常不参与。率地完成对数据库的操作需求,对调优和备份恢复等操作通常不参与。所以,数据库的安全管理通常属于数据库管理员的职责,所以,数据库的安全管理通常属于数据库管理员的职责,DBA可以通过可以通过管理用户、角色以及权限来控制数据库的安全。但对于软件开发人员来管理用户、角色以及权限来控制数据库的安全。但对于软件

6、开发人员来说,掌握一些安全机制及处理方式也是有必要的。说,掌握一些安全机制及处理方式也是有必要的。第8页主要内容主要内容13.1 概述概述13.2 用户管理用户管理13.3 权限管理权限管理13.4 角色管理角色管理13.5数据库审计数据库审计13.6小结小结13.7习题习题第9页13.2 用户管理用户管理 用户是数据库的使用者和管理者,用户管理是用户是数据库的使用者和管理者,用户管理是Oracle数据库数据库安全管理的核心和基础。每个连接到数据库的用户都必须是系安全管理的核心和基础。每个连接到数据库的用户都必须是系统的合法用户,用户要想使用统的合法用户,用户要想使用Oracle的系统资源(查

7、询数据、创的系统资源(查询数据、创建表等),就必须要拥有相应的权限。建表等),就必须要拥有相应的权限。Oracle数据库的用户管理包括创建用户、修改用户的安全参数、数据库的用户管理包括创建用户、修改用户的安全参数、删除用户和查询用户信息等。删除用户和查询用户信息等。第10页13.2.1 初始用户初始用户 在创建在创建Oracle数据库时会自动创建一些用户,例如数据库时会自动创建一些用户,例如SYS、SYSTEM、SCOTT等,除了等,除了SYS、SYSTEM这两个初始合法这两个初始合法的管理员,其余用户在创建后处于锁定状态,需要在安装时的管理员,其余用户在创建后处于锁定状态,需要在安装时或者安

8、装后对其解锁并重新设定口令。这些初始用户有其自或者安装后对其解锁并重新设定口令。这些初始用户有其自身的职责和特点,软件项目一般不建议使用这些初始用户。身的职责和特点,软件项目一般不建议使用这些初始用户。即针对不同的项目,应该由管理员分配不同的用户,在开发即针对不同的项目,应该由管理员分配不同的用户,在开发过程中,过程中,SCOTT用户可以用来测试数据库的可用性。用户可以用来测试数据库的可用性。 l SYS:是数据库中具有最高权限的数据库管理员,可以:是数据库中具有最高权限的数据库管理员,可以启动、修改和关闭数据库,拥有数据字典。启动、修改和关闭数据库,拥有数据字典。 l SYSTEM:是辅助数

9、据库管理员,不能启动和关闭数据:是辅助数据库管理员,不能启动和关闭数据库,可以进行一些其他的管理工作,例如创建用户、删除用库,可以进行一些其他的管理工作,例如创建用户、删除用户等。户等。 l SCOTT:数据库的测试用户,默认口令为:数据库的测试用户,默认口令为tiger。在该。在该用户下已经创建了一些数据表,用于用户学习及测试网络连用户下已经创建了一些数据表,用于用户学习及测试网络连接,包括:接,包括:EMP表、表、DEPT表等。表等。第11页13.2.2 相关属性相关属性和用户相关的属性包括以下几种。和用户相关的属性包括以下几种。(1)用户身份认证方式)用户身份认证方式在用户连接数据库时,

10、必须经过身份认证。在用户连接数据库时,必须经过身份认证。Oracle数据库用数据库用户有户有3种身份认证。种身份认证。u数据库身份认证:这种方式即用户名数据库身份认证:这种方式即用户名/口令方式,用户口口令方式,用户口令以加密方式保存在数据库内部,用户连接数据库时必令以加密方式保存在数据库内部,用户连接数据库时必须输入用户名和口令,通过数据库认证后才能登录数据须输入用户名和口令,通过数据库认证后才能登录数据库。这是默认的认证方式。库。这是默认的认证方式。u外部身份认证:用户账户由外部身份认证:用户账户由Oracle数据库管理,但口令管数据库管理,但口令管理和身份验证由外部服务完成,外部服务可以

11、是操作系理和身份验证由外部服务完成,外部服务可以是操作系统或网络服务。当用户试图建立与数据库的连接时,数统或网络服务。当用户试图建立与数据库的连接时,数据库不会要求用户输入用户名和口令,而从外部服务中据库不会要求用户输入用户名和口令,而从外部服务中获取当前用户的登录信息。这种方式比较适合在局域网获取当前用户的登录信息。这种方式比较适合在局域网环境下,连接简单,不需要提供用户名和口令,但是需环境下,连接简单,不需要提供用户名和口令,但是需要在创建用户时做一些相应的配置。要在创建用户时做一些相应的配置。第12页u全局身份认证:当用户试图建立与数据库的连接时,全局身份认证:当用户试图建立与数据库的连

12、接时,Oracle使用网络中的安全管理服务器(使用网络中的安全管理服务器(Oracle Enterprise Security Manager)对用户进行身份认证。和外部身份认证)对用户进行身份认证。和外部身份认证相同,用户账户由数据库管理,但相同,用户账户由数据库管理,但Oracle不保存口令,当不保存口令,当用户登录时,需要通过网络服务验证。用户登录时,需要通过网络服务验证。Oracle的安全管理的安全管理服务器可以提供全局范围内管理数据库用户的功能。服务器可以提供全局范围内管理数据库用户的功能。(2)表空间配额)表空间配额表空间配额限制用户在永久表空间中可用的存储空间大小,表空间配额限制

13、用户在永久表空间中可用的存储空间大小,默认情况下,新用户在任何表空间中都没有任何配额。用户默认情况下,新用户在任何表空间中都没有任何配额。用户在临时表空间中不需要配额。在临时表空间中不需要配额。 (3)默认表空间)默认表空间用户在创建数据库对象时,如果没有显示指明该对象在哪用户在创建数据库对象时,如果没有显示指明该对象在哪个空间,那么系统会将该对象自动存储在用户的默认表空间个空间,那么系统会将该对象自动存储在用户的默认表空间中,即中,即SYSTEM表空间。一般不建议将用户的对象建立在表空间。一般不建议将用户的对象建立在SYSTEM表空间中,所以默认表空间应指定。表空间中,所以默认表空间应指定。

14、第13页 (4) 临时表空间临时表空间 如果用户执行一些操作例如排序、汇总和表间连接等,如果用户执行一些操作例如排序、汇总和表间连接等,系统会首先使用内存中的排序区系统会首先使用内存中的排序区SORT_AREA_SIZE,如果,如果这块排序区大小不够,则将使用用户的临时表空间。一般使这块排序区大小不够,则将使用用户的临时表空间。一般使用系统默认临时表空间用系统默认临时表空间TEMP作为用户的默认临时表空间。作为用户的默认临时表空间。 (5)账户状态)账户状态 在创建用户时,可以设定用户的初始状态,包括用户在创建用户时,可以设定用户的初始状态,包括用户口令是否过期、用户账户是否锁定等。已锁定的用

15、户不能访口令是否过期、用户账户是否锁定等。已锁定的用户不能访问数据库,必须由管理员进行解锁后才允许访问。数据库管问数据库,必须由管理员进行解锁后才允许访问。数据库管理员可以随时锁定账户或解除锁定。理员可以随时锁定账户或解除锁定。 (6)资源配置)资源配置 每个用户都有一个资源配置,如果创建用户时没有指每个用户都有一个资源配置,如果创建用户时没有指定,定,Oracle会为用户指定默认的资源配置。资源配置的作用会为用户指定默认的资源配置。资源配置的作用是对数据库系统资源的使用加以限制,这些资源包括:口令是对数据库系统资源的使用加以限制,这些资源包括:口令是否过期,口令输入错误几次后锁定该用户,是否

16、过期,口令输入错误几次后锁定该用户,CPU时间,输时间,输入入/输出(输出(I/O)以及用户打开的会话数目等。)以及用户打开的会话数目等。第14页13.2.3 创建用户创建用户创建数据库用户的语法如下:创建数据库用户的语法如下:CREATE USER userIDENTIFIED BY passwore | EXTERNALLYDEFAULT TABLESPACE tablespace TEMPORARY TABLESPACE tablespaceQUOTA integer K | M | UNLIMITED ON tablespaceQUOTA integer K | M | UNLIMIT

17、ED ON tablespacePASSWORD EXPIREACCOUNT LOCK | UNLOCKPROFILE profile | DEFAULT第15页参数说明:参数说明:user:要创建的用户名;:要创建的用户名;BY password:用户通过数据库验证方式登录,登录时:用户通过数据库验证方式登录,登录时需要提供的口令;需要提供的口令;EXTERNALLY:用户需要通过操作系统验证;:用户需要通过操作系统验证;DEFAULT或或TEMPORARY TABLESPACE:为用户指定:为用户指定默认或临时表空间;默认或临时表空间;QUOTA:定义在表空间中允许用户使用的最大空间,可:

18、定义在表空间中允许用户使用的最大空间,可将限额定义为整数字节或千字节将限额定义为整数字节或千字节/兆字节。其中关键字兆字节。其中关键字UNLIMITED用户指定用户可以使用表空间中全部可用空用户指定用户可以使用表空间中全部可用空间;间;PASSWORD EXPIRE:强制用户在使用:强制用户在使用SQL*Plus登录登录到数据库时重置口令(该选项仅在用户通过数据库进行到数据库时重置口令(该选项仅在用户通过数据库进行验证时有效);验证时有效);ACCOUNT LOCK | UNLOCK:可用于显示锁定或解除:可用于显示锁定或解除锁定用户账户(锁定用户账户(UNLOCK为缺省设置);为缺省设置);

19、PROFILE:指定用户的资源配置。:指定用户的资源配置。第16页【例例13-1】创建用户创建用户rose,口令为,口令为zzuli,默认表空间为,默认表空间为USERS,在该表空间的配额为,在该表空间的配额为50MB。口令设置为过期状态,。口令设置为过期状态,即首次连接数据库时需要修改口令。即首次连接数据库时需要修改口令。(如果在如果在SQL Plus中创中创建用户成功,最后会显示个建用户成功,最后会显示个 用户已创建。用户已创建。 之类的,最好写之类的,最好写在例题下面,表示这是运行成功的代码,你实验一下,看看在例题下面,表示这是运行成功的代码,你实验一下,看看创建完结果是什么,写到下面。

20、后面的例题都是这样的吧创建完结果是什么,写到下面。后面的例题都是这样的吧)SQLCREATE USER rose IDENTIFIED BY zzuli2 DEFAULT TABLESPACE USERS3 QUOTA 50M ON USERS4 PASSWORD EXPIRE;用户已创建。用户已创建。第17页13.2.4 修改用户修改用户 用户创建后,可以更改用户的属性,如口令、默认表空间、用户创建后,可以更改用户的属性,如口令、默认表空间、临时表空间、表空间配额、概要文件和用户状态等。但不允许临时表空间、表空间配额、概要文件和用户状态等。但不允许修改用户的名称,除非将其删除。修改用户的名称

21、,除非将其删除。修改数据库用户使用修改数据库用户使用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_nameDEF

22、AULT ROLE role_list | ALL EXCEPT role_list | NONEPASSWORD EXPIREACCOUNT LOCK | UNLOCK;第18页对其中的参数说明如下。对其中的参数说明如下。l role_list:角色列表:角色列表l ALL:表示所有角色:表示所有角色l EXCEPT role_list:表示除了:表示除了role_list列表中角色以外的列表中角色以外的其他角色。其他角色。l NONE:表示没有默认角色。:表示没有默认角色。 【例【例13-2】 修改用户修改用户atea的默认表空间为的默认表空间为USERS,在,在该表空间的配额为该表空间的

23、配额为100MB,在,在USERS表空间的配额为表空间的配额为30MB。命令如下:。命令如下:SQLALTER USER atea2 DEFAULT TABLESPACE USERS3 QUOTA 30M ON USERS;第19页13.2.5 删除用户删除用户 当一个用户不再使用时,可以将其删除。删除用户的语法:当一个用户不再使用时,可以将其删除。删除用户的语法:DROP USER user_name CASCADE执行该语句的用户必须具有执行该语句的用户必须具有DROP USER的系统权限。删除的系统权限。删除用户时需要注意如下几点:用户时需要注意如下几点:(1)如果用户方案中包括任何对象

24、,在删除用户时,必须)如果用户方案中包括任何对象,在删除用户时,必须加上加上CASCADE短语,短语,Oracle数据库会先删除该用户的所数据库会先删除该用户的所有对象,然后再删除该用户。有对象,然后再删除该用户。(2)如果用户当前正与)如果用户当前正与Oracle服务器连接,则不能删除。服务器连接,则不能删除。【例【例13-3】删除用户】删除用户atea。SQLDROP USER atea; -如果如果atea用户的方案用户的方案中没有对象中没有对象 SQLDROP USER atea CASCADE; -如果如果atea用户用户的方案中有对象的方案中有对象第20页13.2.6 查询用户信息

25、查询用户信息 如果要获取用户信息,可以通过查询数据字典视图或如果要获取用户信息,可以通过查询数据字典视图或动态性能视图来实现。动态性能视图来实现。 ALL_USERS:包含数据库所有用户的用户名、用户:包含数据库所有用户的用户名、用户ID和和用户创建时间。用户创建时间。 DBA_USERS:包含数据库所有用户的详细信息。:包含数据库所有用户的详细信息。 USER_USERS:包含当前用户的详细信息。:包含当前用户的详细信息。 DBA_TS_QUOTAS:包含所有用户的表空间配额信息。:包含所有用户的表空间配额信息。 USER_TS_QUOTAS:包含当前用户的表空间配额信息。:包含当前用户的表

26、空间配额信息。 V$SESSION:包含用户会话信息。:包含用户会话信息。 V$OPEN_CURSOR:包含用户执行的:包含用户执行的SQL语句信息。语句信息。 【例【例13-4】查找所有用户的默认表空间。(查找的结果】查找所有用户的默认表空间。(查找的结果应该截图,显示在下面)应该截图,显示在下面)SQLSELECT user_name, default_tablespace 2 FROM dba_users;第21页主要内容主要内容13.1 概述概述13.2 用户管理用户管理13.3 权限管理权限管理13.4 角色管理角色管理13.5 数据库审计数据库审计13.6 小结小结13.7 习题习

27、题第22页 在用户创建完成后,仅仅表示该用户在在用户创建完成后,仅仅表示该用户在Oracle系统中进系统中进行了注册而已,这样的用户既不能连接到数据库,更谈不上行了注册而已,这样的用户既不能连接到数据库,更谈不上进行查询、建表等操作。要使该用户能够连接到进行查询、建表等操作。要使该用户能够连接到Oracle系统系统并能使用并能使用Oracle的资源,如查询表的数据,创建自己的表结的资源,如查询表的数据,创建自己的表结构等,必须由具有构等,必须由具有DBA角色的用户对该用户进行授权。角色的用户对该用户进行授权。第23页13.3.1 权限概述权限概述 权限是指执行特定类型的权限是指执行特定类型的S

28、QL语句或访问另一个用户的语句或访问另一个用户的对象的权利,例如:连接到数据库,创建表,查询其他用户对象的权利,例如:连接到数据库,创建表,查询其他用户的表,调用其他用户的存储过程等。的表,调用其他用户的存储过程等。Oracle数据库使用权限数据库使用权限来控制用户对数据的访问和用户所能执行的操作。用户在数来控制用户对数据的访问和用户所能执行的操作。用户在数据库中可以执行什么样的操作,以及可以对哪些对象进行操据库中可以执行什么样的操作,以及可以对哪些对象进行操作,完全取决于该用户所拥有的权限。作,完全取决于该用户所拥有的权限。 根据系统管理方式的不同,在根据系统管理方式的不同,在Oracle数

29、据库中将权限分为数据库中将权限分为两大类,系统权限和对象权限。两大类,系统权限和对象权限。 系统权限指数据库级别执行某些操作的权限,即用户执系统权限指数据库级别执行某些操作的权限,即用户执行某一特定的数据库操作或某类数据库操作等的权限,例如行某一特定的数据库操作或某类数据库操作等的权限,例如创建表空间,创建会话等。创建表空间,创建会话等。第24页 对象权限是指对数据库中的特定对象(例如表、视图、对象权限是指对数据库中的特定对象(例如表、视图、序列、过程、函数或程序包)的访问控制,以及用户可以序列、过程、函数或程序包)的访问控制,以及用户可以在这些数据库对象上执行哪些操作。例如插入表记录,增在这

30、些数据库对象上执行哪些操作。例如插入表记录,增加约束条件等。加约束条件等。 无论系统权限还是对象权限,在无论系统权限还是对象权限,在Oracle数据库中,数据库中,将权限授予用户的方式有直接授权和间接授权两种。所谓将权限授予用户的方式有直接授权和间接授权两种。所谓直接授权就是利用直接授权就是利用GRANT命令直接为用户授权,间接授命令直接为用户授权,间接授权就是先将权限授予角色,再将角色授予用户。另外,已权就是先将权限授予角色,再将角色授予用户。另外,已经获得某种权限的用户可以将他们的权限或其中一部分权经获得某种权限的用户可以将他们的权限或其中一部分权限再授予其他用户。限再授予其他用户。第25

31、页13.3.2 系统权限管理系统权限管理 在在Orcale 11g 中含有中含有200多种系统权限,每种系统权多种系统权限,每种系统权限都为用户提供了执行某一种或某一类数据库操作的能力,限都为用户提供了执行某一种或某一类数据库操作的能力,可以将系统权限授予用户和角色。由于系统权限可能影响可以将系统权限授予用户和角色。由于系统权限可能影响到整个数据库,所有授予系统权限给用户时需要慎重。到整个数据库,所有授予系统权限给用户时需要慎重。1授予系统权限授予系统权限 系统管理员给用户授权时,应该考虑到不同用户的系统管理员给用户授权时,应该考虑到不同用户的身份。例如数据库管理员用户应该具有创建用户、修改用

32、身份。例如数据库管理员用户应该具有创建用户、修改用户权限、创建表空间以及可以对数据库任何模式中的对象户权限、创建表空间以及可以对数据库任何模式中的对象进行管理的权限,而数据库开发人员应该具有在自己的方进行管理的权限,而数据库开发人员应该具有在自己的方案中创建表、视图、过程等的权限。另外一些普通用户应案中创建表、视图、过程等的权限。另外一些普通用户应该只赋予该只赋予CREATE SESSION的权限。的权限。第26页授予系统权限的语法:授予系统权限的语法:GRANT system_privilege | role,system_privilege | roleTO user | role | P

33、UBLIC, user | role | PUBLIC WITH ADMIN OPTION参数说明:参数说明:l system_privilege:要授予的系统权限:要授予的系统权限l user:被授予权限的用户:被授予权限的用户l role:被授予的角色名:被授予的角色名l PUBLIC:将系统权限授予所有用户:将系统权限授予所有用户l WITH ADMIN OPTION:允许被授予者进一步为其他:允许被授予者进一步为其他用户或角色授予权限或角色。当授权时带有这个子句时,用户或角色授予权限或角色。当授权时带有这个子句时,用户才可以将获得的系统权限再授予其他用户,即系统权用户才可以将获得的系统

34、权限再授予其他用户,即系统权限的传递性。限的传递性。第27页【例【例13-5】数据库管理员授予】数据库管理员授予CREATE SESSION权限给权限给用户用户atea。SQLGRANT CREATE SESSION TO atea;2.系统权限收回系统权限收回 一般用户被授予过高的权限可能会给一般用户被授予过高的权限可能会给Oracle系统带来系统带来安全隐患。作为安全隐患。作为Oracle系统管理员,应该会查询当前系统管理员,应该会查询当前Oracle系统中各个用户的权限,并且能够使用系统中各个用户的权限,并且能够使用REVOKE命令撤销命令撤销用户的某些不必要的系统权限。用户的某些不必要

35、的系统权限。可以使用可以使用REVOKE语句撤销系统权限。语句撤销系统权限。REVOKE system_privilege | role ,system_privilege | roleFROM user | role | PUBLIC, user | role | PUBLIC REVOKE语句中的参数和语句中的参数和GRANT语句中相同。语句中相同。第28页 【例【例13-6】收回用户】收回用户atea的的CREATE SESSION权限权限SQLREVOKE CREATE SESSION FROM atea; 需要说明的是,如果数据库管理员使用了需要说明的是,如果数据库管理员使用了GRA

36、NT语句给用户语句给用户A授予系统权限时带有授予系统权限时带有WITH ADMIN OPTION选项,则该用户选项,则该用户A有权将系统权限再次授予其有权将系统权限再次授予其他的用户他的用户B。在这种情况下,如果数据库管理员使用。在这种情况下,如果数据库管理员使用REVOKE命令撤销命令撤销A用户的系统权限时,用户用户的系统权限时,用户B的系统的系统授权仍然有效。授权仍然有效。13.3.3 对象权限管理对象权限管理 对象权限是一种对于特定对象(表、视图、序列、过对象权限是一种对于特定对象(表、视图、序列、过程、函数或程序包等)执行特定操作的一种权限。数据库程、函数或程序包等)执行特定操作的一种

37、权限。数据库用户拥有对自己的对象的所有对象权限,所以对象权限的用户拥有对自己的对象的所有对象权限,所以对象权限的管理实际上即是对象所有者对其他用户操作该对象的权限管理实际上即是对象所有者对其他用户操作该对象的权限管理。管理。第29页1. 授予对象权限授予对象权限授予对象权限的语法:授予对象权限的语法:GRANT object_privilege (column_list),object_privilege (column_list)| ALL PRIVILEGESON schema. objectTO user | role | PUBLIC , user | role | PUBLIC WI

38、TH 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:表示被授予者可再将对象权限:表示被授予者可再将对象权限授

39、予其他用户。授予其他用户。第30页【例【例13-7】 将将SELECT、INSERT、DELETE授权给授权给atea用户。用户。SQLGRANT SELECT, INSERT,DELETE ON emp TO atea;2. 对象权限回收对象权限回收 要从用户或者角色中撤销对象权限,仍然要使用要从用户或者角色中撤销对象权限,仍然要使用REVOKE命令来完成。要撤销对象权限,撤销者必须是将命令来完成。要撤销对象权限,撤销者必须是将被撤销的对象权限的原始授予者。撤销对象权限的语法:被撤销的对象权限的原始授予者。撤销对象权限的语法:REVOKE object_privilege, object_p

40、rivilege| ALL PRIVILEGESON schema. objectFROM user | role | PUBLIC, user | role | PUBLIC CASCADE CONSTRAINTS第31页其中参数说明如下:其中参数说明如下:l object_privilege:指定将撤销的对象权限;:指定将撤销的对象权限;l ALL:撤销已授予用户的所有对象权限;:撤销已授予用户的所有对象权限;l ON:标识将撤销其对象权限的对象;:标识将撤销其对象权限的对象;l FROM:标识将撤销其对象权限的用户或角色;:标识将撤销其对象权限的用户或角色;l CASCADE CONST

41、RAINTS:删除撤销使用:删除撤销使用REFERENCES或或ALL权限定义的任何引用完整性约束限制;权限定义的任何引用完整性约束限制; 【例【例13-8】从】从atea用户撤销用户撤销emp对象的所有权限。对象的所有权限。SQLREVOKE ALL ON emp FROM atea; 需要注意的是,如果数据库管理员使用需要注意的是,如果数据库管理员使用GRANT命令给命令给用户用户A授予对象权限时带有授予对象权限时带有WITH ADMIN OPTION选项,则选项,则该用户该用户A有权将权限再次授予其他的用户有权将权限再次授予其他的用户B。在这种情况下,。在这种情况下,如果数据库管理员使用

42、如果数据库管理员使用REVOKE命令撤销命令撤销A用户的对象权限用户的对象权限时,用户时,用户B的对象权限也被撤销。需要注意,在进行系统权限的对象权限也被撤销。需要注意,在进行系统权限回收和进行对象权限回收时,效果是不一样的。回收和进行对象权限回收时,效果是不一样的。第32页13.3.4 权限查询权限查询 用户被授予的系统权限或者对象权限都被记录在用户被授予的系统权限或者对象权限都被记录在Oracle的数据字典中,了解某个用户被授予哪些系统权限和对象权的数据字典中,了解某个用户被授予哪些系统权限和对象权限是确保应用系统安全的重要工作。如表限是确保应用系统安全的重要工作。如表13-1所示为所示为

43、Oracle11g用于存放用户、系统权限和对象权限有关的数据字用于存放用户、系统权限和对象权限有关的数据字典。典。【例例13-9】查询所有的对象权限。(查找的结果应该截图查询所有的对象权限。(查找的结果应该截图粘贴在下面)粘贴在下面)SQLSELECT * FROM dba_tab_privs;第33页主要内容主要内容13.1 概述概述13.2 用户管理用户管理13.3 权限管理权限管理13.4 角色管理角色管理13.5数据库审计数据库审计13.6小结小结13.7习题习题第34页13.4 角色管理角色管理 Oracle 中的权限分类很多,设置十分复杂,就系统权限中的权限分类很多,设置十分复杂,

44、就系统权限而言,在而言,在Oracle11g中就超过了中就超过了200种,为数据库管理员正确种,为数据库管理员正确有效地管理数据库权限带来了困难,而角色就是简化权限管有效地管理数据库权限带来了困难,而角色就是简化权限管理的一种数据库对象。理的一种数据库对象。13.4.1 角色概述角色概述 角色是权限管理的一种工具,是一系列权限的集合,角角色是权限管理的一种工具,是一系列权限的集合,角色可以被授予任何用户,也可以从用户中收回。色可以被授予任何用户,也可以从用户中收回。使用角色可以简化权限的管理,可以仅用一条语句就能从用使用角色可以简化权限的管理,可以仅用一条语句就能从用户那里授予或者回收许多权限

45、,而不必对用户一一授权。使户那里授予或者回收许多权限,而不必对用户一一授权。使用角色还可以实现权限的动态管理,比如随着应用的变化可用角色还可以实现权限的动态管理,比如随着应用的变化可以增加或者减少角色的权限,这样通过改变角色权限,就改以增加或者减少角色的权限,这样通过改变角色权限,就改变了多个用户的权限。变了多个用户的权限。第35页 角色、用户及权限是一组有密切关系的对象,既然角角色、用户及权限是一组有密切关系的对象,既然角色是一组权限的集合,那么他被授予某个用户时才能有意色是一组权限的集合,那么他被授予某个用户时才能有意义,可以如图义,可以如图13-1所示帮助我们理解角色、用户及权限的所示帮

46、助我们理解角色、用户及权限的关系。关系。图图13-1 用户、角色和权限的关系用户、角色和权限的关系第36页 在复杂的大型应用系统,要求对应用系统功能进行分在复杂的大型应用系统,要求对应用系统功能进行分类,从而形成角色的雏形,再使用类,从而形成角色的雏形,再使用CREATE ROLE语句将语句将它们创建为角色;最后根据用户工作的分工,将不同的角色它们创建为角色;最后根据用户工作的分工,将不同的角色(包括系统预定义的角色)授予各类用户。如果应用系统的(包括系统预定义的角色)授予各类用户。如果应用系统的规模很小,用户数也不多,则可以直接将应用的权限授予用规模很小,用户数也不多,则可以直接将应用的权限

47、授予用户,即使是这样,用户也必须对户,即使是这样,用户也必须对Oracle系统的预定义角色有系统的预定义角色有所了解。所了解。 角色所对应的权限集合中可以包含系统权限和对象角色所对应的权限集合中可以包含系统权限和对象权限。角色是可以授予另外一个角色的,需要避免将角色授权限。角色是可以授予另外一个角色的,需要避免将角色授予它本身,也不能循环授予。予它本身,也不能循环授予。13.4.2 创建角色创建角色 如果系统预定义的角色不符合用户的需要,数据库管如果系统预定义的角色不符合用户的需要,数据库管理员还可以创建更多的角色。创建用户自定义角色使用理员还可以创建更多的角色。创建用户自定义角色使用CREA

48、TE ROLE语句来实现。语句来实现。第37页创建角色语句的语法格式如下:创建角色语句的语法格式如下:CREATE ROLE role_name NOT IDENTIFIED IDENTIFIED BY password;对其中的参数说明如下:对其中的参数说明如下:l role_name:用于指定自定义角色名称,该名称不能与:用于指定自定义角色名称,该名称不能与任何用户名或其他角色相同。任何用户名或其他角色相同。l NOT IDENTIFIED:用户指定该角色由数据库授权,使:用户指定该角色由数据库授权,使该角色生效时不需要口令。该角色生效时不需要口令。l IDENTIFIED BY pass

49、word:用于设置角色生效时的认:用于设置角色生效时的认证口令。证口令。【例例13-10】创建不验证的角色创建不验证的角色doctor_clerkSQLCREATE ROLE doctor_clerk;【例例13-11】创建使用口令验证的角色创建使用口令验证的角色SQLCREATE ROLE unit_clerk IDENTIFIED BY caption;【例例13-12】 创建外部验证的角色创建外部验证的角色SQLCREATE ROLE unit_manager IDENTIFIED EXTERNALLY;第38页13.4.3 角色授权角色授权 当角色被建立后,没有任何权限,只有对其授予权

50、限,当角色被建立后,没有任何权限,只有对其授予权限,才有使用的意义。因此,在创建角色后,通常还需要立即为才有使用的意义。因此,在创建角色后,通常还需要立即为它授予权限。可以通过给用户授权的它授予权限。可以通过给用户授权的GRANT语句给角色授权,语句给角色授权,并将角色赋予相应的数据库用户。并将角色赋予相应的数据库用户。角色权限的授予与回收和用户权限的授予与回收类似,语法角色权限的授予与回收和用户权限的授予与回收类似,语法也与其相同。也与其相同。 【例【例13-13】为】为teller角色授予角色授予CREATE SESSION 和和CREATE DATABASE LINK权限权限 SQLGR

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁