oracle数据库管理工具中的安全管理包括哪些方面

您的位置: &
关于Oracle数据库安全管理的研究
优质期刊推荐Oracle数据库安全检查系统的设计与实现--《复旦大学》2013年硕士论文
Oracle数据库安全检查系统的设计与实现
【摘要】:随着数据库技术的不断发展,Oracle数据库作为此领域的领导者在并行高速处理、系统高可用、数据无缝共享、大数据处理等领域也得到了飞速发展。但与此同时,由于其系统的庞大、逻辑的复杂、功能的丰富其数据库自身的安全性或其配置的合理性、遵循性等安全方面越来越成为其重要风险。正是由于Oracle数据库系统自身的复杂性、配置逻辑关系多变性、部署实施的环境不一致性等特性,当前Oracle数据库安全状态的检查系统一直存在种种技术难点,因此构建一套针对Oracle数据库并且适应任何场景的安全检查系统,以满足DAB/CIO/CSO等管理人员对其数据库安全状态的定义已成为一项重要工作。
本文的研究目标是构建一套Oracle数据库安全检查系统,针对Oracle数据库安全领域进行了较为全面的研究,研究内容包括系统功能定位、各类型环境的通用性、检查知识库以及漏洞等级定义等等方面。该系统是一套通用的Oracle数据库安全检查系统,能为管理员一套方便、快捷且标准化的Oracle数据库安全检查平台。
本文首先分析了Oracle数据库系统当前安全现状,明确了Oracle数据库安全检查系统的功能定位、核心功能以及系统流程。然后研究了基于JDBC的通用开放式连接引擎、采用Swing实现框架通过MVC的层次化设计模式并配合加解密、并行资源池等技术实现整体Oracle数据库安全检查系统。其中重点论述了跨Oracle数据库环境的功能、安全检查漏洞、角色分权、报表功能等实现和分析。并在此基础上,详细分解了各个功能模块所需要的子功能模块的构建和实现分析。然后针对各系统或子系统进行UML建模设计,包括涉及MVC的表现层、业务控制层、数据解析访问层。同时依据相关设计,通过Swing框架配合JDK等开发环境包进一步实现了具体的代码和界面。最后总结该系统的优势和不足。整体上通过需求分析、技术分析、系统设计、代码构建等环节详细阐述了Oracle数据库安全检查系统的设计与实现。
【关键词】:
【学位授予单位】:复旦大学【学位级别】:硕士【学位授予年份】:2013【分类号】:TP311.13;TP309【目录】:
摘要5-6ABSTRACT6-8第一章 引言8-11 1.1 Oracle数据库安全现状8-9 1.2 常规安全检查存在的不足9 1.3 本文的研究内容9-10 1.4 本文的组织10-11第二章 相关关键技术11-17 2.1 JDBC技术11-13 2.2 Swing技7术13 2.3 加解密技术13-14 2.4 MVC框架的应用14-15 2.5 并行检查技术15 2.6 代码混淆技术15-16 2.7 本章小结16-17第三章 Oracle数据库安全检查系统的需求分析17-26 3.1 系统功能定位17 3.2 系统主要流程分析17-18 3.3 系统核心功能分析18-24
3.3.1 各版本Oracle数据库支持18-20
3.3.2 友好的UI交互20
3.3.3 安全漏洞检查的权威性20-22
3.3.4 扫描策略自定义22
3.3.5 用户角色三权分立22-23
3.3.6 灵活的报表功能23-24
3.3.7 相关辅助功能24 3.4 性能分析24-25 3.5 本章小结25-26第四章 Oracle数据库安全检查系统的设计26-41 4.1 系统总体设计26-27 4.2 软件结构设计27-30 4.3 系统模式和开发技术选择30-31 4.4 检查系统检查引擎设计31-32 4.5 安全知识库信息子系统32-34 4.6 信息分析子系统34 4.7 用户交互设计34-37
4.7.1 任务管理35-36
4.7.2 策略管理36
4.7.3 授权检查36-37
4.7.4 报告管理37
4.7.5 用户管理37
4.7.6 其他37 4.8 报表子系统设计37-38 4.9 其他辅助子系统38-40 4.10 本章小结40-41第五章 Oracle数据库安全检查系统的实现41-53 5.1 系统的实现41-50
5.1.1 检查引擎子系统的实现41-44
5.1.2 安全知识库子系统加解密的实现44-46
5.1.3 信息分析子系统的实现46-48
5.1.4 报表子系统的实现48-49
5.1.5 辅助功能子系统的实现49-50 5.2 系统部署使用过程50-51 5.3 检查效果分析51-52 5.4 本章小结52-53第六章 总结和展望53-55 6.1 全文总结53-54 6.2 不足与展望54-55参考文献55-57致谢57-58
欢迎:、、)
支持CAJ、PDF文件格式
【参考文献】
中国期刊全文数据库
魏钢;;[J];电大理工;2009年01期
石利平;;[J];电脑开发与应用;2011年01期
梁晓欢;;[J];电脑与电信;2011年04期
李超;;[J];硅谷;2012年21期
刘明珍;;[J];煤炭技术;2011年06期
尚西元;汪正瑛;马琳;;[J];青海电力;2011年04期
【共引文献】
中国期刊全文数据库
沈朴;;[J];电脑知识与技术;2012年14期
武一;郭婷婷;;[J];电视技术;2014年05期
董毅骅;陈垚至;陈盈;;[J];内江科技;2012年05期
卞东亮;陈长兴;彭沙沙;牛德智;王博;;[J];计算机科学;2012年S3期
冯福伟;杜丽萍;李瑛;赵桂芬;;[J];计算机与数字工程;2013年10期
卞东亮;陈长兴;彭沙沙;王博;;[J];现代电子技术;2012年05期
汤勇锋;;[J];无线互联科技;2013年07期
肖萍;;[J];信息网络安全;2013年11期
中国硕士学位论文全文数据库
蔡世波;[D];浙江工业大学;2010年
刘佳;[D];复旦大学;2011年
石慧慧;[D];南京林业大学;2010年
于一帆;[D];浙江大学;2012年
朱西方;[D];华中师范大学;2013年
王丹琳;[D];辽宁工程技术大学;2013年
张树鸣;[D];宁波大学;2014年
郭婷婷;[D];河北工业大学;2014年
【二级参考文献】
中国期刊全文数据库
沈泓;范亚芹;;[J];吉林大学学报(信息科学版);2009年03期
卫培培;胡彧;;[J];电脑开发与应用;2010年04期
张银霞;李育芳;;[J];电脑开发与应用;2010年11期
张春晖;;[J];电脑知识与技术;2009年22期
孙占锋;宋保卫;;[J];电脑知识与技术;2009年24期
郭曼;;[J];河南机电高等专科学校学报;2009年02期
吉治钢,蔡利栋;[J];计算机应用;2003年10期
【相似文献】
中国期刊全文数据库
王德强;张锐;谢立;宋娇;;[J];计算机科学;2002年12期
孙中红;[J];电脑开发与应用;2003年10期
孟眉,陈勇,李忠俊;[J];安徽电子信息职业技术学院学报;2004年02期
崔艳荣,文汉云;[J];计算机应用研究;2005年07期
吴溥峰;张玉清;;[J];计算机工程;2006年12期
王辉;;[J];科技经济市场;2006年05期
王静;易军凯;;[J];微计算机信息;2006年27期
易国华;;[J];长江大学学报(自科版);2006年10期
刘娜;;[J];长沙民政职业技术学院学报;2006年04期
易国华;;[J];长江大学学报(自科版)理工卷;2006年04期
中国重要会议论文全文数据库
王晓鸣;;[A];第四次全国计算机安全技术交流会论文集[C];1989年
刘欣;沈昌祥;;[A];第十九次全国计算机安全学术交流会论文集[C];2004年
胡索荣;叶晓俊;彭勇;谢丰;;[A];第26届中国数据库学术会议论文集(B辑)[C];2009年
罗华钧;孙长军;;[A];2007通信理论与技术新发展——第十二届全国青年通信学术会议论文集(上册)[C];2007年
张春生;张增光;;[A];全国第19届计算机技术与应用(CACIS)学术会议论文集(上册)[C];2008年
李丽萍;杨寅春;何守才;蒋川群;;[A];第二十二届中国数据库学术会议论文集(技术报告篇)[C];2005年
张剡;夏辉;柏文阳;;[A];第二十一届中国数据库学术会议论文集(技术报告篇)[C];2004年
郭强;杨季可楠;;[A];江苏省通信学会2004年学术年会论文集[C];2004年
许兹薇;;[A];第二次计算机安全技术交流会论文集[C];1987年
刘旭光;胡学钢;;[A];全国第21届计算机技术与应用学术会议(CACIS·2010)暨全国第2届安全关键技术与应用学术会议论文集[C];2010年
中国重要报纸全文数据库
;[N];网络世界;2013年
边歆;[N];网络世界;2009年
;[N];网络世界;2007年
詹俏俏;[N];经济参考报;2003年
于翔;[N];网络世界;2012年
本报记者 李旭阳;[N];计算机世界;2012年
刘菁菁;[N];计算机世界;2010年
南京工业大学 王凤阁;[N];中国计算机报;2006年
熊佳冰;[N];民营经济报;2007年
中国银行福建省分行信息科技部 邱晓理;[N];计算机世界;2006年
中国博士学位论文全文数据库
李立新;[D];重庆大学;2001年
中国硕士学位论文全文数据库
王静;[D];北京化工大学;2006年
陈适;[D];湖南大学;2012年
叶家炜;[D];复旦大学;2008年
李华;[D];北方工业大学;2009年
戴瑞恩;[D];清华大学;2004年
王明根;[D];苏州大学;2005年
李鹏;[D];北京化工大学;2006年
张建国;[D];北京工业大学;2002年
高延玲;[D];西安电子科技大学;2004年
逯楠楠;[D];湖北工业大学;2011年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 大众知识服务
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号后使用快捷导航没有帐号?
查看: 1066|回复: 1
oracle数据库安全配置与管理
新手上路, 积分 39, 距离下一级还需 11 积分
论坛徽章:2
本帖最后由 hfz1810 于
15:54 编辑
&&关于 Oracle 数据库安全1.&&Oracle 数据库安全介绍1.1.可以使用默认的 Oracle数据库功能在以下方面配置管理安全:n&&用户帐户,当你创建用户后,就可以使用多种方法来保护它们。也可以使用口令 profile 来使保护口令的策略更好。
n&&权限和角色,可以使用权限和角色来限制用户对数据的访问。
n&&概要文件,可以使用概要文件限制用户合理使用系统和数据库资源,并可以对口令进行管理。
n&&认证方法,Oracle 数据库提供了多种方法来为用户和 DBA 配置认证。例如,可以在数据库层次、操作系统层次、网络层次上认证用户。
n&&应用安全,创建数据库应用的第一步是确保它是安全的。
n&&使用应用程序上下文的用户会话信息。应用程序上下文是保存会话信息的键值对。从中可以获取关于某一用户的会话信息,例如用户名、终端,从而限制根据这个信息限制用户对应用程序和数据库的访问。
n&&使用 VirtualPrivate Database 的行级和列级数据库访问。Virtual PrivateDatabase 策略动态地嵌入一个WHERE谓词到用户执行的 语句中。
n&&加密,可以在网络上隐藏数据,来防止对数据的未授权的访问。
n&&审计,可以审计用下面术语描述的数据库活动,例如审计所有 SQL 语句、SQL 权限、方案对象、网络活动。
n&&备份,通过对数据库进行周密的备份,以便在需要的时候进行恢复,确保数据库数据完整安全。1.2.&&其它的数据库安全资源n&&Advanced Security Features,例如透明数据加密、wallet 管理、网络加密、RADIUS、Kerberos、Secure Socket Layer
n&&Oracle Label Security,在行级保护数据库表,允许你基于权限过滤用户对行数据的访问。
n&&Oracle Database Vault,提供对敏感数据的细粒度访问控制,包括阻止特权用户访问数据。
n&&Oracle Audit Vault,会从 Oracle 数据库审计追踪表、操作系统审计文件、数据库重做信息收集数据库审计数据。使用 Oracle Audit Vault,可以为可疑的活动创建预警,可以为特权用户改变、方案修改、数据库层访问的历史创建报表。 n&&Oracle Enterprise User Security,允许在企业级管理用户安全。
2.1.关于用户安全
2.&&数据库用户安全管理每个 Oracle 数据库都有一个有效的数据库用户的列表。Oracle 数据库允许我们以各种方式为用户建立安全。当我们创建用户帐户时,可以指定用户帐户的限制,也可以为每个用户访问各种系统资源的数量设置限制。Oracle 提供了数据库视图的集合可以用于查询资源和会话信息。profile 是应用到用户的属性的集合。它允许多个用户中引用一个 profile,当然这多个用户共享该 profile 中的属性。管理用户安全的另一个方式是给用户指定权限和角色。
2.1.1. 创建用户使用 CREATE USER语句创建数据库用户。需要具有CREATE USER 系统权限。因为 CREATE USER权限是一个强大的权限,因此DBA 或安全管理员是唯一具有该权限的用户:
&&& && &&&--创建用户& & CREATE USER test_user& & IDENTIFIED BY test_pwd& & DEFAULT TABLESPACE data_ts& & QUOTA 100M ON test_ts& & QUOTA 500K ON data_ts& & TEMPORARY TABLESPACE temp_ts& & PROFILE test_profile;& & --授权,一个新创建的用户是不能连接到数据库的,直到将 CREATE SESSION 权限授予给他.& & --如果用户必须访问& & OEM,则还应该授予 SELECT ANY& & DICTIONARY 权限& & GRANT CREATE SESSION TO test_user;& &
注意:作为一个安全管理员,应该创建自己的角色,并且仅指定需要的权限。创建公司自己的角色可以为公司提供一个权限指定的更详细的控制,也可以在 Oracle 在未来的版本中改变角色的情况下,保护公司。例如,在 Oracle 未来的版本中 CONNECT 和 RESOURCE 将成为过去。2.1.2.& &为用户指定默认的表空间每个用户都应该有默认的表空间。当在用户的方案中创建对象时并且这个 DDL 语句没有指定包含这个对象的表空间的时候,Oracle 把这个对象存储在用户默认的表空间中。在oracle 10g中,如果没有为用户指明默认表空间,则系统将数据库的默认表空间USERS作为用户的默认表空间。当为用户指定默认的表空间时,也要在这个表空间上指定限额。
&&& && &&&--创建用户& & CREATE USER jward& & IDENTIFIED BY password& & DEFAULT TABLESPACE data_ts& & QUOTA 100M ON test_ts& & QUOTA 500K ON data_ts& & TEMPORARY TABLESPACE temp_ts& & PROFILE test_profile;& &
2.1.3.& &为用户指定表空间限额可以为每个用户针对任意表空间(除了临时表空间)指定限额。指定限额后:
n&&具有创建特定对象类型的权限的用户可以在指定的表空间创建相应的对象。
n&&Oracle 数据库会在指定的表空间中限定为用户的对象存储而分配的空间的数量。
默认用户在数据库的任何表空间上都没有限额。如果用户具有创建方案对象的权限,则必须指定限额允许用户创建对象。至少要为用户在默认的表空间上指定限额,在它能够创建对象的其它表空间上指定额外的限额。
&&& && &&&--创建用户& & CREATE USER jward& & IDENTIFIED BY password& & DEFAULT& & TABLESPACE data_ts& & QUOTA 100M ON test_ts& & QUOTA 500K ON data_ts& & TEMPORARY TABLESPACE temp_ts& & PROFILE clerk;& &
可以为用户在每个表空间中指定单独的配额,也可以指定在所有的表空间中不受限制。指定限额可以防止用户对象使用过多的数据库空间。可以在创建用户时给用户空间指定限额,也可以在创建之后添加或修改。查询限额信息使用 USER_TS_QUOTAS 视图。2.1.4.& &在表空间中限制用户对象的限额可以通过设置用户的限额为 0 来限制在表空间中的用户对象的限额。在限额被设置为 0 之后,用户在表空间中的对象仍然保留,用户也可以创建新的对象,但已经存在的对象不能分配新的空间。例如不能向已经存在的表中插入数据(如果已经为对象分配的空间还有剩余,则可以插入)。插入新数据所操作会返回 ORA-1536 space quota exceeded for tables 错误。
&&& && &&&SQL & alter user test quota 0 on& &
列出所有表空间配额
&&& && &&&SQL & SELECT * FROM DBA_TS_QUOTAS;& & ---其中字段BYTES,已经分配给用户的空间,& & MAX_BYTES:用户的限额,单位为 byte& &
2.1.5.& &授予用户 UNLIMITED_TABLESPACE 系统权限允许用户使用数据库中任意表空间中不限制数量的空间,可以给用户授予 UNLIMITED_TABLESPACE 系统权限。这会覆盖所有针对该用户的显式设置的表空间限额。如果后面回收了这个权限,则必须显式地给单独的表空间授予限额。UNLIMITED_TABLESPACE授予给用户,不能授予给角色。 在授予UNLIMITED_TABLESPACE 权限时必须考虑后果: 优点:可以使用一个语句授予用户数据库中所有表空间的无限制的访问。缺点:这个权限会覆盖针对该用户的所有显式的表空间限额,不能选择性地从具有 UNLIMITED_TABLESPACE 权限的用户回收表空间的访问。只有回收这个权限之后,才能授予选择性的或限制性的访问。2.1.6.& &为用户指定 profile当创建用户时可以指定profile。profile 是对数据库资源和访问数据库的口令的一系列限制。如果没用为用户指定profile,则Oracle 数据库给用户指定一个默认的 profile。
&&& && &&&--创建用户& & CREATE USER test& & IDENTIFIED BY testpwd& & DEFAULT& & TABLESPACE data_ts& & QUOTA 100M ON test_ts& & QUOTA 500K ON data_ts& & TEMPORARY TABLESPACE temp_ts& & PROFILE test_profile;& & 或& & Alter user default profile test_& &
2.1.7. 为用户设置默认角色角色是一个命名的相关权限的集合,这些权限做为整体要授予给用户或其它的角色。当用户创建会话时,一个默认的角色会自动开启。可以给用户指定 0 个或更多的默认角色。不能在 CREATEUSER 语句中设置默认角色。当你第一次创建用户时,用户的默认角色设置为 ALL,这会使所有后续授予给用户的角色都成为默认角色。
&&& && &&&GRANT USER ctp ctp_role;& & 或& & ALTER USER ctp DEFAULT ROLE ctp_role;& &
2.1.8.& &修改用户帐户用户可以修改它自己的口令。然而,改变用户的其它选项,必须具有 ALTER USER 系统权限。安全管理员是唯一拥有这个系统权限的用户,因为这个权限允许任何用户安全范畴内的修改。使用ALTER USER修改用户属性,包括用户口令、默认表空间、表空间配额、锁定状态等。
ALTER USER user[ DEFAULT TABLESPACE tablespace][ TEMPORARY TABLESPACE tablespace][ QUOTA {integer [K | M] | UNLIMITED } ONtablespace[ QUOTA {integer [K | M] | UNLIMITED } ONtablespace ]...]。2.1.9. 删除用户可以使用drop userusername;删除用户。如果用户含有对象,则加cascade参数进行删除。不能删除当前与oracle连接的用户。
&&& && &&&DROP USER test& &
2.2.& &配置用户资源限制2.2.1.& &关于用户资源限制可以针对每个用户设置他可以使用的各种系统资源的限制,作为该用户的安全方面的一部分。这样,就可以防止对系统资源(例如 CPU 时间)的无控制的消耗。可以使用 Database Resource Manager 来设置资源限制。这个资源限制功能对于大型的、多用户的系统是非常有用的。一个或多个用户对资源的大规模的消耗会对其它用户产生有害的影响。在单用户或小规模的多用户系统,系统资源功能不是非常重要。因为系统资源的消耗不太可能产生有害的影响。可以使用 Database Resource Manager 来管理用户资源限制。可以设置口令管理优于使用profile,或为多个用户设置单独的profile,或为多个用户指定默认的profile。一个 Oracle 数据库可能有任意多个 profile。Oracle 数据库允许 DBA 在全局范围内开启或禁用 profile 资源限制的实施。设置资源限制会在用户创建会话时引起轻微的性能下降,因为Oracle 数据库每个用户的每个连接加载所有的资源限制数据。2.2.2.& &限制用户会话层每次用户连接到数据库,都会建立一个会话。每个会话使用计算机上的 CPU 时间和内存。可以在会话层次设置多种资源限制。如果用户超出了会话层次的限制,则 Oracle 数据库会中断(回滚)当前的语句并返回一个消息,表明已经达到了会话的限制。此时,当前会话中之前的语句都是 intact(未受影响)的,用户能够执行的唯一操作是 COMMIT、ROLLBACK 或断开连接(当前的会话会被提交)。所有其它的操作都会产生错误。甚至在事务被提交或回滚之后,用户也不能在当前的会话中完成更多的工作。
2.2.3.& &限制数据库访问层每次用户运行一个 SQL 语句,Oracle 数据库会执行多个步骤来处理这个语句。在这个过程中,会多次对数据库进行访问,作为不同的执行阶段的一部分。为了防止任何一个访问过度地使用系统,Oracle 数据库允许在访问层次设置多种资源限制。如果用户超出了访问层次的资源限制,则 Oracle 数据库会挂起语句的执行,回滚这个语句,返回一个错误。然而当前会话中之前的语句仍然保持 intact,并且用户会话保持连接。
2.2.4.& &限制CPU时间当 SQL 语句或其它类型的访问在数据库上执行的时候,需要一定的 CPU 时间来处理这些访问。平均的访问需要少量的 CPU 时间。然而,一个包含大量数据的 SQL 语句或者是一个 runaway(失控的)查询可能潜在地使用大量的 CPU 时间,这样就减少了其它处理可用的 CPU时间。为了防止无控制的 CPU 时间的使用,可以对每个访问设置固定的或动态的 CPU 时间的限制,也可以设置在一个会话中 Oracle 数据库访问使用的 CPU 时间的总数。单位为 0.01 秒。可用概要文件参数SESSIONS_PER_USE来限制用户每个会话占用的最大CPU 时间。
&&& && &&&SQL& create profile res_profile& & limit cpu_per_call 6000;& & SQL& alter user test_user profile& & res_ SQL& alter user test_user profile res_& &
2.2.5.& &限制逻辑读在数据库系统中 I/O 是最贵的操作。I/O 密集的 SQL 语句可能独占内存和磁盘的使用,并致使其它的数据库操作因为这些资源而无法完成。为了避免过度 I/O 的单个资源,可以对每个访问或会话限制逻辑数据块读。逻辑数据块读包括从内存和磁盘读取的数据块。这个限制是以一个访问或会话过程中读取的数据块数量来设置的。可用概要文件参数LOGICAL_READS_PER_SESSON来限制用户每个会话的最大逻辑读取次数。
2.2.6.& &限制其它资源Oralce 数据库在会话层次上提供了多种其它资源的限制:
n&&可以限制每个用户的当前会话的数量
n&&可以限制会话的 idle 时间,如果会话的访问之间的时间达到了空闲时间的限制,则当前事务被回滚,会话被中断,会话的资源被归还给系统。下一次访问会接收到一个错误,表明用户不再连接到实例了。单位为分钟。注意:在会话因为超出了会话空闲时间的限制而被中断之后不久,PMON 进程会清理中断会话。直到PMON 进程完成了这个处理,这个被中断的会话仍然被计算在会话或用户资源限制之中。
n&&可以限制每个会话的连接时间,如果会话的持续时间超出了这个时间限制,则当前的事务被回滚,会话被删除,会话的资源被归还给系统。单位为分钟。注意:Oralce 数据库不是一直监控空闲时间和连接时间。因为这样做会降低性能。它是每几分钟检查一次。因此会话可能会稍微地超出这个限制,在 Oracle 数据库实施这种限制并中断会话之前。
n&&可以限制针对会话的私有 SGA 空间(用于 private sql area)的数量。& & 这种限制只能共享服务器配置非常重要。否则 private sql area 是处于 PGA 中。单位为 K 或 M。3.&&数据库权限管理
3.1.&&关于数据库权限在oracle中,用户权限分为:系统权限和对象权限系统权限:指在数据库级别执行某种操作的权限,如create session,create any table等权限。对象权限:指对某个特定的数据库对象执行某种操作的权限,如对表的增删改查的权限。
将权限授予用户的两种方法:n&&直接授权:利用grant命令直接为用户授权
n&&间接授权:先将权限授予角色,然后再将角色授予用户
DBA 的权限控制包括:n&&为用户提供执行某种操作的权限
n&&授予和撤消执行系统功能的权限
n&&将权限直接授予用户或角色
n&&将权限授予所有用户(PUBLIC)
3.2.&&系统权限管理3.2.1.& &系统权限分类在oracle数据库中,有一百多中系统权限。可以讲系统权限授予用户,角色,public用户组、注意:public用户组时创建数据库的时候自动创建的一个用户组,数据库中所有用户都属于该用户组;如果将某个权限授予public用户组,则数据库中所有过的用户都具备该权限
常用的系统权限有:
CREATE SESSION& && && && && && && &创建会话
CREATE SEQUENCE& && && && && && &&&创建序列
CREATE SYNONYM& && && && && && && &创建同名对象
CREATE TABLE& && && && && && && &&&在用户模式中创建表
CREATE ANY TABLE& && && && && && & 在任何模式中创建表
DROP TABLE& && && && && && && && & 在用户模式中删除表
DROP ANY TABLE& && && && && && && &在任何模式中删除表
CREATE PROCEDURE& && && && && && & 创建存储过程
EXECUTE ANY PROCEDURE& && && && &&&执行任何模式的存储过程
CREATE USER& && && && && && && && &创建用户
DROP USER& && && && && && && && &&&删除用户
CREATE VIEW& && && && && && && && &创建视图
3.2.2.& &系统权限的授权给用户授权的时候注意下面4点:1)& && & 只有DBA才应当拥有alterdatabase系统权限
2)& && & 应用程序开发者一般需要具有create table权限,create view权限,create index等系统权限
3)& && & 普通用户一般只具有create session系统权限
4)& && & 只有授权时带有with admin option子句时,用户才可以将获得的系统权限在授予其他用户,即系统权限的传递
语法如下:GRANT&&{ system_privilege|role }
[ , { system_privilege|role }&&]...
TO&&{ user | role | PUBLIC }
&&[,&&{user | role | PUBLIC } ]...
&&[ WITH ADMINOPTION&&]
其中:system_privilege :指定要授予的系统权限
Role:指定要授予的角色名
PUBLIC :将系统权限授予所有用户
WITH ADMIN OPTION:允许被授予者进一步为其他用户或角色授予权限或角色
为用户授予系统权限,SQL& grantcrea
Grant succeeded.
SQL& grantcreate session,create table,create view,create any index to user1;
Grant succeeded.
SQL& grantcreate session,create table,create view,create any index,create database linkto user1
Grant succeeded.
3.2.3.& &系统权限的回收数据库管理员或者系统权限的传递用户可以将用户所获得的系统权限回收使用语句:revoke sys_priv_list from user_list | role_list | PUBLIC;
如:SQL& revokecreate table,create view from user1;Revokesucceeded.
回收权限时应注意以下3点:1)& && & 多个管理员授予用户同一个权限后,其中一个管理员只要把该权限收回时,该用户将不再拥有相应的系统权限
2)& && & 为了回收系统权限的传递性,必须先回收其系统权限,然后再重新授予其相应的系统权限
3)& && & 如果一个用户获得的系统权限具有传递性,并且给其他用户授权,那么该用户的权限被收回后,其他用户的权限并不受影响
3.2.4.& &查看系统权限查看系统权限信息:dba_sys_privs&&--针对所有用户被授予的系统权限
user_sys_privs --针对当前登陆用户被授予的系统权限
SQL& select * from dba_sys_privs where grantee='USER1'
3.3.&&对象权限管理3.3.1.& &对象权限的分类file:///C:/Users/LIFENG~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif说明:对勾处为适合对象对象权限的授权命令语句:GRANT{ object_privilege [ (column_list ) ][ ,object_privilege [ ( column_list ) ] ]...| ALL [ PRIVILEGES] }ON& &[schema. ]objectTO&&{user | role | PUBLIC } [ ,&&{ user|role |PUBLIC }&&]...[ WITH GRANT OPTION ] 其中:object_privilege :指定要授予的对象权限column_list :指定表或视图列(只在授予INSERT、REFERENCES或UPDATE 权限时才指定。)ALL :将所有权限授予已被授予WITH GRANT OPTION的对象ONobject:标识将要被授予权限的对象WITHGRANT OPTION:使被授予者能够将对象权限授予其他用户或角色 例子,对象权限授予1、SQL& grant select,insert,update on scott.emp touser1Grant succeeded.
2、权限传递SQL& connuser1/user1Connected.SQL& grant select,updateon scott.emp to user5;Grant succeeded. 3、把scott的表所有操作都给user1SQL& grant allon scott.emp to user1;Grant succeeded. 3.3.2.& &对象权限的回收 回收对象权限使用revoke语句,语法如下 REVOKE { object_privilege[ , object_privilege]...| ALL [ PRIVILEGES]&&}ON [ schema.]objectFROM { user | role|PUBLIC }[ ,&&{ user | role|PUBLIC }&&]...[ CASCADECONSTRAINTS ] 说明:object_privilege:指定将撤消的对象权限ALL :撤消已授予用户的所有对象权限ON:标识将撤消其对象权限的对象FROM:标识将撤消其对象权限的用户或角色CASCADECONSTRAINTS:删除撤消使用REFERENCES或ALL 权限定义的任何引用完整性约束 例如,SQL& revokeselect,update on scott.emp from user1;Revoke succeeded. 在进行对象权限回收时应注意以下3点:1)& && &&&多个管理员授予同一个对象权限,其中一个管理员回收其对象权限,则该用户不再拥有该对象权限 2)& && &&&如果想回收用户对象权限的传递性,必须先回收对象权限,然后在重新赋予相应的对象权限 3)& && &&&对象权限的级联性,如果用户获得的对象权限具有传递性,并且给其他用户授权,那么该用户的对象权限被回收后,其他用户对象也被回收,级联
4.&&数据库角色管理
4.1.&&关于数据库角色所谓角色,就是一系列权限的集合。n&&数据库预定义角色file:///C:/Users/LIFENG~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gifn&&预定义角色的查询通过视图dba_roles查询当前数据库中所有的预定义角色;通过视图dba_sys_privs查询各个预定义角色所具有的系统权限;如:SQL&select * from dba_ROLE& && && && && && && && && &PASSWORD-----------------------------------------------------------------------CONNECT& && && && && && && && &NORESOURCE& && && && && && && &&&NODBA& && && && && && && && && &&&NO。。。。。。SQL&select * from dba_sys_privs where grantee='CONNECT'; GRANTEE& && && && && && && && &PRIVILEGE& && && && && && && && && && &&&ADM---------------------------------------------------------------------- ----------------------------------------------------CONNECT& && && && && && && && &CREATE SESSION& && && && && && && && &&&NO n&&自定义角色CREATEROLE role [ NOT IDENTIFIED&&| IDENTIFIED { BY password&&|&&EXTERNALLY&&|& &GLOBALLY&&| USING package } ] 其中: role:是角色的名称 NOTIDENTIFIED:表明启用该角色时,不需要进行验证 IDENTIFIED:表明启用该角色时,需要进行验证 BYpassword :提供用户在启用角色时必须指定的口令 USINGpackage :创建应用程序角色,该角色只能由使用授权的程序包的应用程序启用 EXTERNALLY:表明在启用该角色之前,用户必须由外部服务(例如操作系统或第三方服务)授权 GLOBALLY:表明通过SET ROLE 语句启用角色之前或登录时,必须由企业目录服务授权用户使用该角色&&4.2.&&角色权限的授予与回收可以给一个角色授予系统权限,对象权限或者是已有角色。一个角色可以被授予另外一个角色,打不可以授予其本身。如:SQL& grantconnect,create table,create view to low_manager_SQL& grantconnect,resource,dba,create table,create view to middle_manager_ 4.3.&&角色的生效与失效可以通过SET ROLE命令可启用和禁用角色。禁用角色以暂时撤消用户拥有的该角色。启用角色以暂时授予该角色。登录时启用用户的缺省角色。启用角色可能需要口令。 如:1、设置当前用户所有的角色失效SQL& 2、设置某一个角色生效,如有口令则需输入口令SQL& set rolehigh_manager_role id 3、同时设置多个角色生效SQL& set rolemiddle_manager_role,low_manager_role i 4、可以设置所有的角色生效SQL& set roleall except middle_manager_set role all exceptmiddle_manager_role*ERROR at line 1:ORA-01979: missingor invalid password for role 'HIGH_MANAGER_ROLE'注:只有在启用的每个角色都没有口令时,不带EXCEPT 子句的ALL 选项才有效。 5、修改high_manager_role的口令SQL& alter rolehigh_manager_再次执行方可执行SQL& set roleall except middle_manager_4.4.&&删除角色使用drop role +角色名如:SQL& drop rolelow_manager_4.5.&&利用角色进行权限管理1、给用户或角色授予角色SQL& grantconnect,high_manager_role to user10;SQL& grantresource,connect to middle_manager_ 2、回收角色SQL& revokehigh_manager_role from user10; 3、用户角色的激活与屏蔽 语法:alter useruser_name&&default&&role [role_name] | [all [exceptrole_name]]| 1、屏蔽用户所有角色SQL& alter useruser10 2、激活用户所有的角色SQL& alter useruser1 4.6.&&查看角色信息dba_roles:数据库中所有的角色及其描述dba_role_privs:数据库中所有用户和角色授予的角色信息 1、查询角色CONNECT所具有的系统权限信息SQL& select *from role_sys_privs where role='CONNECT';ROLE& && && && && && && && && &PRIVILEGE& && && && && && && && && && &&&ADM---------------------------------------------------------------------- ---CONNECT& && && && && && && && &CREATE SESSION& && && && && && && && && &NO 2、查询dba角色被授予的角色信息SQL& select *from role_role_privs where role='DBA';ROLE& && && && && && && && && &GRANTED_ROLE& && && && && && & ADM------------------------------------------------------------ ---DBA& && && && && && && && && &SCHEDULER_ADMIN& && && && && & YESDBA& && && && && && && && && & OLAP_DBA& && && && && && && &&&NODBA& && && && && && && && && &EXECUTE_CATALOG_ROLE& && && &&&YES5.&&数据库概要文件管理概要文件,即profile,也称为资源文件或配置文件。它可以为用户设置口令策略(限制口令的使用天数、口令满足的复杂度等)、可以限制用户对硬件系统和数据库资源的使用。5.1.&&概要文件参数介绍5.1.1.& & 资源限制参数会话级资源限制调用级资源限制file:///C:/Users/LIFENG~1/AppData/Local/Temp/msohtmlclip1/01/clip_image010.gif5.1.2.&&口令管理参数口令账户锁定参数& &file:///C:/Users/LIFENG~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif口令失效和过期&&file:///C:/Users/LIFENG~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif口令历史记录file:///C:/Users/LIFENG~1/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif5.2.&&创建概要文件5.2.1.& & 口令配置CREATE PROFILE
profile LIMIT
[FAILED_LOGIN_ATTEMPTS&&max_value]
[PASSWORD_LIFE_TIME max_value]
[ {PASSWORD_REUSE_TIME |PASSWORD_REUSE_MAX}&&max_value]
[PASSWORD_LOCK_TIME max_value]
[PASSWORD_GRACE_TIME max_value]
[PASSWORD_VERIFY_FUNCTION
5.2.2.& &资源配置CREATE PROFILE profile LIMIT[SESSIONS_PER_USERmax_value][CPU_PER_SESSIONmax_value][CPU_PER_CALLmax_value][CONNECT_TIMEmax_value][IDLE_TIME max_value][LOGICAL_READS_PER_SESSIONmax_value][LOGICAL_READS_PER_CALLmax_value][COMPOSITE_LIMITmax_value][PRIVATE_SGAmax_bytes]其中:profile:是配置文件的名称max_value:是一个整数、UNLIMITED 或DEFAULTmax_bytes:是一个整数,后面可以跟KB 或MB、UNLIMITED 或者DEFAULT建议:口令配置和资源配置文件一般分开创建
5.3.&&修改概要文件修改概要文件命令语句:ALTER PROFILE profile LIMIT
[FAILED_LOGIN_ATTEMPTS max_value]
[PASSWORD_LIFE_TIME max_value]
[ {PASSWORD_REUSE_TIME
[PASSWORD_LOCK_TIME max_value]
[PASSWORD_GRACE_TIME max_value]
[PASSWORD_VERIFY_FUNCTION
若要将口令参数设置为不超过一天:
1&&小时:PASSWORD_LOCK_TIME = 1/24
10 分钟:PASSWORD_LOCK_TIME = 10/1400
5&&分钟:PASSWORD_LOCK_TIME = 5/14405.4.&&删除概要文件DROP PROFILE profile [CASCADE]
其中:profile:是要删除的配置文件的名称CASCADE:指定此选项可以删除当前分配给用户的配置文件。5.5.&&查询概要文件dba_users&&查询用户所使用的配置文件
dba_profiles&&查询所有的参数文件的基本信息
user_password_limits 查询用户设置的口令文件的每条参数的信息
user_resource_limits 查询设置的资源限制参数
5.6.&&实例n&&创建一个res_profile配置文件
SQL& create profile res_profile limitsessions_per_user 4 connect_time 60 idle_time20 private_sga100K cpu_per_call100;
n&&创建一个pwd_profile的配置文件
SQL& create profile pwd_profile limitfailed_login_attempts 4 password_lock_time 10;
n&&将概要文件分配给用户
SQL& create user user5 identified byuser5 profile res_
SQL& select profile from dba_users whereusername='USER5';
n&&修改用户的概要文件
SQL& alter user user5 profilepwd_
n&&修改概要文件,使用alter profile ...limit,执行该语句的用户必须拥有alter profile权限
SQL& alter profile pwd_profile limitpassword_life_time 10;
n&&查询概要文件pwd_profile内容
SQL& select * from dba_profiles whereprofile='PWD_PROFILE';
n&&删除概要文件
SQL& drop profile pwd_drop profile pwd_profile*ERROR at line 1:ORA-02382: profile PWD_PROFILE has usersassigned, cannot drop without CASCADE
SQL& drop profile pwd_Profile dropped.
说明:如果删除的概要文件已经指定给用户,则必须在drop profile 中加入cascade
n&&查询口令文件为用户设置的策略信息
SQL& select * from user_password_
RESOURCE_NAME& && && && && && &&&LIMIT------------------------------------------------------------------------FAILED_LOGIN_ATTEMPTS& && && && &10PASSWORD_LIFE_TIME& && && && && &UNLIMITEDPASSWORD_REUSE_TIME& && && && &&&UNLIMITEDPASSWORD_REUSE_MAX& && && && && &UNLIMITEDPASSWORD_VERIFY_FUNCTION& && && &NULLPASSWORD_LOCK_TIME& && && && && &UNLIMITEDPASSWORD_GRACE_TIME& && && && &&&UNLIMITED
n&&查询资源配置文件为用户设置的策略信息
SQL& select * from user_resource_
RESOURCE_NAME& && && && && && &&&LIMIT------------------------------------------------------------------------COMPOSITE_LIMIT& && && && && && &UNLIMITEDSESSIONS_PER_USER& && && && && & UNLIMITEDCPU_PER_SESSION& && && && && && &UNLIMITEDCPU_PER_CALL& && && && && && && &UNLIMITEDLOGICAL_READS_PER_SESSION& && &&&UNLIMITEDLOGICAL_READS_PER_CALL& && && &&&UNLIMITEDIDLE_TIME& && && && && && && && &UNLIMITEDCONNECT_TIME& && && && && && && &UNLIMITEDPRIVATE_SGA& && && && && && && & UNLIMITED
6.&&其他安全管理6.1.&&锁定无关的帐号对于跟数据库运行、维护等工作无相关的帐号,应锁定或删除。操作如下:SQL & alter user u6.2.&&启用数据库字典保护oracle提供了O7_DICTIONARY_ACCESSIBILITY参数来保护数据字典基表的安全。数据字典的基表可由具有sysoper和sysdba系统权限的用户操作。当该参数被设为true时,并不具备上述两种权限的用户,如果获得了drop any table权限,将能够恶意的删部分数据字典,同时如果获得了select anytable的权限,将可以操作数据字典的基表,从而对数据库构成安全威胁。关于具体的o7_dictionary_accessibility的设置及权限情况:1)& && & o7_dictionary_accessibility=true用户具有了any table权限,可以访问sys用户的对象,包括数据字典基表,dba_开头的视图
2)& && & o7_dictionary_accessibility=false用户具有了any table权限,可以访问除sys用户之外的其他用户的对象,也就无权访问数据字典基表。用户具有了selectany dictionary权限,可以查询数据字典视图和动态性能图,而无法访问数据字典基表。
配置如下:1.& && &&&使用show parameter命令来检查参数O7_DICTIONARY_ACCESSIBILITY是否设置为FALSE。SQL & showparameter O7_DICTIONARY_ACCESSIBILITY
2.& && &&&将O7_DICTIONARY_ACCESSIBILITY参数设置为falseSQL& altersystem set O7_DICTIONARY_ACCESSIBILITY=false scope=---数据库需重启后方能生效6.3.&&禁止SYSDBA帐号的远程登录和自动登录限制具备数据库超级管理员SYSDBA帐号远程登录和本地登录。操作如下:1.& && &&&修改配置参数,禁止SYSDBA远程登录以DBA权限帐号登录数据库,修改remote_login_passwordfile参数为noneSQL& alter system set remote_login_passwordfile=nonescope=&&---数据库需重启后方能生效
2.& && &&&修改$ORACLE_HOME/network/admin/sqlnet.ora文件中参数SQLNET.AUTHENTICATION_SERVICES为NONE,禁止SYSDBA本地登录数据库6.4.&&限制IP访问数据库设置只有信任的IP地址才能访问数据库。操作如下:1.& && &&&修改$ORACLE_HOME/network/admin/sqlnet.ora文件,添加tcp.validnode_checking=yestcp.invited_nodes = (ip1,ip2,…) ---允许访问的IP,至少要包含数据库IP,否则监听无法启动。tcp.excluded_nodes = (ip1,ip2,…)---不允许访问的IP或网段
2.& && &&&重启监听生效。6.5.&&关掉Extproc功能由于 extproc 存在安全问题允许用户不进行身份认证就可以调用系统函数,因此如果不需要该功能必须关闭。修改 TNSNAMES.ORA 和 LISTENER.ORA 文件,删除以下条目:icache_extproc,PLSExtproc,Extproc
新手上路, 积分 33, 距离下一级还需 17 积分
论坛徽章:2
很详细,学习中///////
扫一扫加入本版微信群}

我要回帖

更多关于 oracle数据库管理软件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信