第八章Oracle安全管理课程目标了解和掌握Oracle的用户管理了解和掌握Oracle的角色管理Oracle的安全管理体验项目——Oracle用户和角色的管理本章体验项目实现对用户和角色进行创建、修改和删除等操作,程序启动后,运行结果如图8-1所示:图8-1程序运行结果用户为了保证数据库数据的安全可靠性和正确有效,DBMS必须提供统一的数据保护功能。数据保护也称为数据控制,主要包括数据库的安全性、完整性、并发控制和恢复。数据库的安全性体系数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。计算机系统都有这个问题,在数据库系统中大量数据集中存放,为许多用户共享,使安全问题更为突出。在Oracle多用户数据库系统中,安全机制主要做下列工作:防止非授权的数据库存取;防止非授权的对模式对象的存取;控制磁盘使用;控制系统资源使用;审计用户动作。数据库安全可分为两类:系统安全性和数据安全性。(1)系统安全性是指在系统级控制数据库的存取和使用的机制,包含:有效的用户名/口令的组合。一个用户是否授权可连接数据库。用户对象可用的磁盘空间的数量。用户的资源限制。数据库审计是否是有效的。用户可执行哪些系统操作。(2)Oracle利用下列机制管理数据库安全性:数据库用户和模式。特权。角色。存储设置和空间份额。资源限制。审计。安全管理员对用户安全域有下列决策:是由数据库系统还是由操作系统维护用户授权信息。设置用户的缺省表空间和临时表空间。列出用户可存的表空间和在表空间中可使用空间份额。设置用户资源限制的环境文件,该限制规定了用户可用的系统资源的总量。规定用户具有的特权和角色,可存取相应的对象。每一个用户有一个安全域,它是一组特性,安全域可决定下列内容:用户可用的特权和角色。用户可用的表空间的份额。用户的系统资源限制。实际上,Oracle9i的安全性体系主要是从以下几个方面解决的:(1)物理层的安全性数据库所在节点必须在物理上得到可靠的保护。(2)用户层的安全性哪些用户可以使用数据库,使用数据库的哪些数据对象,具有什么样的权限等。(3)操作系统层的安全性数据库所在的主机的操作系统的弱点将可能提供恶意攻击数据库的入口。(4)网络层的安全性Oracle9i数据库主要是面向网络提供服务,因此,网络软件的安全性和网络数据传输的安全性至关重要。(5)数据库系统层的安全性通过对用户授予特定的访问数据库对象的权利的办法来确保数据库系统层的安全。用户的管理1.Oracle9i默认的用户用户名口令登录身份及说明syschange_on_installSYSDBA或SYSOPER,但不能以NORMAL登录,可作为默认的系统管理员systemmanagerSYSDBA或NORMAL,但不能以SYSOPER登录,可作为默认的系统管理员scotttigerNORMAL,普通用户aqadmaqadmSYSDBA或NORMAL,高级队列管理员。dbsnmpdbsnmpSYSDBA或NORMAL,复制管理员。Oracle9i默认的用户主要有以下几个:表8-1Oracle9i默认用户表2.用户的创建用户的创建可以通过企业管理器,也可以在SQLPlusWorksheet中创建,在企业管理器中创建用户的方法如下:登录企业管理器,依次找到“数据库”“安全性”“用户”,右键点击“用户”节点,即弹出右键菜单选中右键菜单中的“创建”菜单项,弹出“创建用户”窗口在“一般信息”选项卡中输入用户名称和口令,然后点击“角色”选项卡,在“已授予”下面列表框中,将角色为“CONNECT”后面的“管理选项”选中选中“系统权限”选项卡,选中“CREATEANYTABLE”选项,将选中的选项移至“已授予”下面的列表框里选中“对象权限”选项、“使用者组”、“限额”选项卡进行各项目的配置。全部配置完成后,点击“创建用户”对话框中的“创建”按钮,即弹出“创建成功”窗口,点击“确定”按钮,就可以完成用户的创建了。3.用户的修改4.用户的删除(1)登录企业管理器,在“用户”结节的下找到需要修改的用户,右键选中该用户,即弹出右键菜单(2)在右键菜单中选中“查看/编辑详细资料”菜单项,即弹出“编辑用户”对话框,在该对话框中可以修改用户名、口令、表空间、状态,同时可以修改角色、系统权限、对象权限、使用者组、限额及代理用户的相关信息,修改完成后,点击“确定”按钮,即可完成对用户的修改。登录企业管理器后,找到需要删除的用户,右键选中用户,在弹出的菜单中选择“移去”菜单项,即弹出如图8-13所示的“是否删除”窗口,点击“是”按钮,就可以删除用户。角色角色的定义角色是相关特权的命名组,是一系列特权的组合。应用角色是授予的运行数据库应用所需的全部特权。一个应用角色可授给其它角色或指定用户。一个应用可有几种不同角色,具有不同特权组的每一个角色在使用应用时可进行不同的数据存取。用户角色是为具有公开特权需求的一组数据库用户而建立的。用户特权管理是受应用角色或特权授权给用户角色所控制,然后将用户角色授权给相应的用户。角色的优点Oracle利用角色进行特权管理,有下列优点:减少特权管理,不需要显式地将同一特权组授权给几个用户,只需将这特权组授给角色,然后将角色授权给每一用户。动态特权管理,如果一组特权需要改变,只需修改角色的特权,所有授给该角色的全部用户的安全域将自动地反映对角色所做的修改。特权的选择可用性,授权给用户的角色可选择地使能(可用)或使不能(不可用)。应用可知性,当某一用户经一用户名执行应用时,该数据库应用可查询字典,将自动地选择使角色使能或使不能。专门的应用安全性,角色使用可由口令保护,应用可提供正确的口令使角色使能,达到专门的应用安全性。因用户不知其口令,不能使角色使能。角色的功能数据库角色包含下列功能:一个角色可授予系统特权或对象特权。一个角色可授权给其它角色,但不能循环授权。任何角色可授权给任何数据库用户。授权给一个用户的每一角色可以使能或者使不能。一个用户的安全域仅包含当前对该用户使能的全部角色的特权。一个间接授权角色(授权给另一角色的角色)对一个用户可显式地使其能或使不能。在一个数据库中,每一个角色名必须唯一。角色名与用户不同,角色不包含在任何模式中,所以建立一个有相关角色的用户被删除时不影响该角色。Oracle9i预定义的角色表8-2Oracle9i预定义的角色角色名称说明CONNECT数据库连接角色,用于连接数据库DBA数据库管理员角色DELETE_CATALOG_ROLE删除目录角色,可以删除或重建数据字典EXECUTE_CATALOG_ROLE执行目录角色,能够执行所有系统包EXP_FULL_DATABASE能够使用导出程序执行数据库的完全和增量导出IMP_FULL_DATABASE能够使用导入程序执行数据库的完全导入RESOURCE可以创建簇、表、序列以及PL/SQL编程用方案对象SELECT_CATALOG_ROLE查询数据字典表或视图角色的创建角色的创建可以在企业管理器中,也可以在SQLPlus中,以在企业管理器中创建角色为例,步骤如下:登录企业管理器,找到角色节点,右键选中“角色”,选择“创建”选项。在弹出的“创建角色”窗口选择“一般信息”选项卡,输入角色的名称和口令。点击“角色”选项卡,在“可用”下的选项里选中“CONNECT”和“DBA”将选中内容添加至“已授予”下面的列表框中,并在“CONNECT”和“DBA”后的“管理选项”里点击即可打上“”。选中“系统权限”选项卡,在“可用”下的选项里找到“ALTERANYINDEX”和“SELECTANYTABLE”,将选中内容添加至“已授予”下面的列表框里并在其后的后的“管理选项”里点击即可打上“”。选中“对象权限”选项卡,可以在这里设置对象权限选中“使用者组”选项卡,在“可用”下的选项里找到“DEFAULT_CONSUMER_GROUP”,将选中内容添加至“已授予的切换权限”下的列表框里角色的修改登录企业管理器,找到需要修改的角色,选中该角色并右击,选中右键菜单中的“查看/编辑详细资料”菜单项。在弹出的“编辑角色”窗口,修改口令、角色、系统权限、对象权限及使用者组。角色的删除角色的删除,常用的也有两种方法:一种是通过企业管理器,一种是使用SQLPlus工具,下面我们使用企业管理器完成角色的删除。登录企业管理器后,找到需要删除的角色,右键选中该角色,在弹出的右键菜单中选择“移去”菜单项,即弹出“是否删除”窗口,点击“是”按钮,即可以完成角色的删除。概要文件概要文件确定分配给CPU/会话、CPU/调用、连接时间和空闲时间的时间量,同时概要文件可以有一定的数据库服务。概要文件的创建创建概要文件可以在企业管理器中,也可以在SQLPlus中,下面先看一下在企业管理器中创建概述文件的方法:登录企业管理器,找到选中数据库节点下的“安全性”“概要文件”,并右键点击“概要文件”节点,创建”菜单项。进入弹出的“创建概要文件”窗口,在“一般信息”选项卡中输入各种需要的参数。选中“口令”选项卡,在文本框输入各种需要的参数。设置完成后,点击“创建”按钮,弹出“创建成功”窗口,点击“确定”按钮即可完成概要文件的创建。概要文件的修改(1)在企业管理器中,找到需要修改的概要文件,右键选中该文件。(2)选择“查看/编辑详细资料”菜单项,进入“编辑概要文件”窗口。(3)在对话框中修改需要改变的参数,也可以修改口令中的参数,修改完成后,点击“确定”按钮,就完成了概要文件的修改。将概要文件分配给用户(1)在企业管理器中,右键点击“概要文件”节点,即弹出右键菜单(2)在右键菜单中点击“为用户分配概要文件”菜单项,弹出“分配概要文件”窗口,在“用户”下的列表中选择要分配概要文件的用户(3)然后在“概要文件”下拉列表中选择要分配给用户的概要文件,完成设置后点击“确定”按钮,就完成了给用户分配概要文件。概要文件的删除在企业管理器中,右键点击需要删除的概要文件,在弹出的右键菜单中选择“移去”菜单项,即弹出如图8-32所示的“是否删除”窗口,点击“是”按钮,即可以删除概要文件。图8-32确认窗口用SQL代码对概要文件进行操作(1)对于概要文件的创建,可以在SQLPlusWorksheet中使用下面的代码:CREATEPROFILETEMPPROFILE/*一般信息选项卡对应的配置参数*/LIMITCPU_PER_SESSION1000CPU_PER_CALL1000CONNECT_TIME30IDLE_TIMEDEFAULTSESSIONS_PER_USER10LOGICAL_READS_PER_SESSION1000LOGICAL_READS_PER_CALL1000PRIVATE_SGA16KCOMPOSITE_LIMIT1000000/*口令选项卡对应的配置参数*/FAILED_LOGIN_ATTEMPTS3PASSWORD_LOCK_TIME5PASSWORD_GRACE_TIME60PASSWORD_LIFE_TIME30PASSWORD_REUSE_MAXDEFAULTPASSWORD_REUSE_TIME30PASSWORD_VERIFY_FUNCTIONDEFAULT;(2)对于概要文件的修改,可以在SQLPlusWorksheet中使用下面的代码:ALTERPROFILETEMPPROFILELIMITCPU_PER_SESSION6000;(3)将概要文件分配给用户,可以在SQLPlusWorksheet中使用下面的代码:ALTERUSERTEMPUSERPROFILETEMPPROFILE;(4)对于概要文件的删除,可以在SQLPlusWorksheet中使用下面的代码:DROPPROFILETEMPPROFILE;实践项目——Oracle用户和角色的管理一、程序的实现要求如下:1.用户的管理:(1)在SQLPlusWorksh