数据库安全性分析资料文档格式.docx
《数据库安全性分析资料文档格式.docx》由会员分享,可在线阅读,更多相关《数据库安全性分析资料文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
4.将查询的文献资料及小组归纳总结的报告整理成展示的PPT;
5.课堂上各个小组通过展示PPT交流讨论,对数据库的安全性深入了解;
6.归纳总结,书写实践报告。
三、实践操作步骤
1.查询主流数据库种类
上图就是我们小组查询到的最新的数据库排行榜,接下来我们将对排在前三位的Oracle、MySQL、MicrosoftSQLServer进行搜集资料并整理。
2.三个数据库的发展及地位简介
2.1Oracle数据库
OracleDatabase,又名OracleRDBMS,或简称Oracle。
是甲骨文公司的一款关系数据库管理系统。
它是在数据库领域一直处于领先地位的产品。
可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。
它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
比如SilverStream就是基于数据库的一种中间件。
ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;
作为一个关系数据库,它是一个完备关系的产品;
作为分布式数据库它实现了分布式处理功能。
但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
Oracle数据库最新版本为OracleDatabase12c。
Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。
此外,一些创新特性可最大限度地提高资源使用率和灵活性,如OracleMultitenant可快速整合多个数据库,而AutomaticDataOptimization和HeatMap能以更高的密度压缩数据和对数据分层。
这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c成为私有云和公有云部署的理想平台。
2.2MySQL数据库
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
由于MySQL是开放源代码的,因此任何人都可以在GeneralPublicLicense的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。
大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
MySQL这个名字,起源不是很明确。
一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQLAB创始人之一的MontyWidenius的女儿也叫My。
这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。
MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。
获胜的名字是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze提供。
根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。
它的历史也富有传奇性。
2.3SQLServer数据库
SQLServer是Microsoft公司推出的关系型数据库管理系统。
具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2012的大型多处理器的服务器等多种平台使用。
MicrosoftSQLServer是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
MicrosoftSQLServer数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
3.查询文献对以上三个数据库进行分析比较
3.1Oracle数据库
对Oracle数据库我们小组主要参考了胡歆发表在《信息安全与技术》期刊的论文《Oracle数据库安全性分析研究》。
对其主要从三个方面分析:
一、安全保护
物理备份
(1)Oracle数据库的备份与恢复逻辑备份
Oracle恢复管理器
Oracle数据库的数据保护主要是对数据库进行备份。
Oracle目前的备份与恢复基础架构是业界最强大、最可靠的。
它提供了三种备份和恢复手段:
物理备份、逻辑备份以及Oracle恢复管理器。
物理备份只是拷贝构成数据库的文件但不管其逻辑内容如何。
逻辑备份是读一个数据库记录集并将记录集写入文件。
恢复管理器(RMAN)提供的最重要的新特性是能够执行数据文件的增量物理备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。
定期对Oracle数据库进行备份,一旦出现异常情况,我们可以利用备份进行不同程度的恢复。
如数据文件损坏,只须从备份中将损坏的文件恢复到原位置,重新加载数据库。
如果控制文件损坏,只要关闭数据库,从备份中将相应的控制文件恢复到原位置即可。
(2)Oracle数据库的数据审计注册企图、对象访问、数据库操作
数据审计是数据库管理员对用户进行审计。
审计包括了注册企图、对象访问、数据库操作等三种不同的操作类型。
数据库管理员可以利用Oracle数据库系统的审计功能,监视和记录所选择用户的活动情况。
Oracle的审计工具用于记录关于数据库操作的信息,如操作是何时发生的,是哪个用户在执行。
通过审计,可以跟踪有问题的用户。
管理员可以起用和禁用审计信息记录,这个功能允许任何授权的数据库用户设置审计选项,但是,只有安全管理员才能够对记录审计信息进行管理。
二、防入侵保护
(1)用户安全管理
用户是定义在数据库中的一个名称,它是Oracle数据库的基本访问控制机制。
当用户要连接到Oracle数据库以进行数据访问时,必须要提供合法的用户名及其口令。
Oracle数据库是可以为多个用户共享使用的,一个数据库中通常会包含多个用户。
数据库管理员可以定义和创建新的数据库用户,可以为用户更改口令,可以锁定某用户禁止其登录数据库。
用户管理工作是数据库管理员的职责之一,创建用户必须具有CREATEUSER系统权限。
而通常情况下只有数据库管理员或安全管理员才拥有CREATEUSER权限。
(2)权限管理
权限用于限制用户可执行的操作,即限制用户在数据库中或对象上可以做什么,不可以做什么。
新建用户没有任何权限,不能执行任何操作。
只有给用户授予了特定权限或角色之后,该用户才能连接到数据库,进而执行相应的SQL语句或进行对象访问操作。
同时也可以通过回收权限的命令对所授予的权限进行回收。
(3)角色管理
角色就是一组权限的集合。
角色可以被授予用户或其他的角色,把角色分配给用户,就是把角色所拥有的权限分配给了用户。
使用角色可以更容易地进行权限管理,主要体现在三个方面。
首先是减少了授权工作:
用户可以先将权限授予一个角色,然后再将角色授予每一个用户,而不是将一组相同的权限授予多个用户。
其次是动态权限管理:
当一组权限需要改变时,只需要更改角色的权限,则所有被授予了此角色的用户自动地立即获得了修改后的权限。
最后是方便地控制角色的可用性:
角色可以临时禁用和启用,从而使权限变得可用的或者是不可用的。
(4)PROFILE管理
数据库每个用户都会对应一个配置文件,PROFILE可以限制用户执行某些需要消耗大量资源的SQL操作,同时确保在用户会话空闲一段时间后,将用户从数据库注销。
在大而复杂的多用户数据库系统中,它可以合理分配资源并且控制用户口令的使用。
还要对每个用户或会话使用的CPU、内存等系统资源予以限制,以有效地利用系统资源确保系统性能。
使用PROFILE进行资源限制,既可以限制整个会话的资源占用,也可以限制调用级的资源占用。
三、安全措施
(1)数据库的存储加密
数据库存储加密主要用于保护数据在数据库存储期间的保密性。
对于重要的敏感数据,尤其是我国电子政务系统中涉及国家机密的数据,除了指定的人员以外,其它人员是不能接触、阅读和获取的。
但是数据库管理人员拥有最高权限,可以浏览数据库中的一切信息,造成数据失密的最大隐患。
同时非法用户还可以在操作系统甚至硬件级别绕过DBMS直接窃取数据库文件内容。
因此,很多情况下要保护数据的保密性必须对其进行存储加密处理,这样即使存储的数据不幸泄露或丢失,也不易被破译。
(2)用户口令的保密
对于数据库来说,除了要注意基本口令管理准则,如口令的长度、复杂性、更改周期等,还要注意用户口令的加密。
Oracle数据库系统是依赖于密码管理的,在Oracle数据库中采用了一项独创的功能,就是通过概要文件来保障数据库口令的安全性。
在口令使用期限上,虽然使用一次就修改一次密码并不现实,但我们可以尽量缩小密码使用期限。
而在口令的复杂性上,一定要杜绝用户使用纯数字口令、短口令的情况,在Oracle数据库中提供了多种密码复杂性的检查工具,可规定密码的最小长度,可规定密码必须包含的符号等,从而提高密码破解难度。
(3)加强用户动作的审计
用户动作审计机制,是对用户的可疑活动,如非授权用户的删除活动、写入活动、修改活动等动作。
首先需要建立独立的审计系统和审计员,审计记录需要存放在单独的审计文件中,而不像Oracle存在数据库中,只有审计员才能访问这些审计记录。
同时,为了保证数据库系统的安全审计功能,系统还需要能够对安全侵害事件自动响应,提供审计自动报警功能。
当系统检测到有危害到系统安全的事件发生并达到阈值时,要给出报警信息,同时还会自动断开用户的连接,终止服务器端的相应线程,并阻止该用户再次登录系统。
(4)注意终端用户的权限分配
Oracle数据库在运用时,我们可以通过应用软件来控制,也可以通过数据库的用户权限管理来实现。
一般情况下,我们不应给用户直接赋予权限,而应当利用数据库自身的权限管理器来进行管理,将终端用户按权限需要进行分组,仅给每个用户赋予必要的权限,通过用户与组来管理数据库的访问权限,对于一些特权用户,则可以直接把权限赋予用户。
通过组来管理用户众多的数据库,可以使用户权限管理更简单,避免出现因管理混乱而产生权限泄露的情况。
3.2MySQL数据库
对MySQL数据库我们小组主要参考了唐建国发表在《数据库与信息管理》期刊的论文《MySQL数据库系统安全分析》。
一、访问控制
MySQL提供了简单但是却十分有效的安全保护机制。
MySQL数据库管理员有责任保护其数据库中数据的安全性,使得只有那些经过严格认证的用户才能访问该数据库中的记录,这种保护包括内部安全性和外部安全性两个方面。
数据库文件
(1)内部安全机制文件系统的问题
日志文件
MySQL的内部安全机制最主要的是考虑文件系统这一级别的问题,例如可以防止具有运行MySQL服务器权限的用户对MySQL数据目录进行攻击。
数据库管理员应该对以下内容进行必要的保护:
1)数据库文件。
数据库管理员应该保证数据库中数据的专有性,同时还必须保证数据库中的数据不会因为数据库目录的安全性能低而被泄露。
2)日志文件。
由于在常规的和更新的日志文件中包含有大量的查询文件,这些信息都是以纯文本形式进行记录,一个对该日志具有访问权限的攻击者,只需要在日志中对GRANT或PASSWORD等执行grep命令就可以找到他所需要的敏感信息。
(2)外部安全机制外部通过网络连接服务器的客户问题
MySQL外部安全机制是指阻止客户通过网络对MySQL服务器进行攻击,我们必须设置MySQL授权表,以保证只有合法的用户才能访问由MySQL服务器管理的数据库中的相关内容。
MySQL服务器通过MySQL授权表建立了一套先进的安全的授权系统,并且数据库管理员可以通过MySQL授权表对用户的权限进行设置和更改。
二、数据库的维护与修复
(1)日志文件常规日志文件、更新日志
MySQL服务器生成的日志文件主要有两种形式:
1)常规日志文件:
可以把客户机对MySQL数据库的所有操作进行记录和跟踪。
这种日志文件可以用来对服务器的活动进行跟踪:
那个用户在连接服务器、从什么地方连接服务器,在对服务器进行哪些操作。
2)更新日志。
它可以把对数据库进行修改的查询进行记录。
所有更新的日志文件用SQL语句的形式进行书写,这些语句用作对MySQL的输入,当MySQL服务器瘫痪时,可以利用该日志文件将系统恢复到崩溃时的完好状态
(2)数据库表的检查和维护检查拷贝修复恢复
在MySQL数据库中,对表的检查和维护的主要步骤为:
1)对发生错误的表进行检查。
如果对这个表的检查能够通过的话,则任务完成,如果不能通过,则必须对这个出错的表进行修复。
2)为了防止数据丢失,在对出错的表进行修复之前必须对这个表进行拷贝保存。
3)对出错的表进行修复。
4)如果对这个表的修复不成功,则需要通过备份的数据库和更新的日志文件来恢复此表。
以上步骤中的第4部是在已经对数据库进行了备份和更新日志文件有效的前提下进行的。
(3)数据库备份与数据库恢复
对数据库进行备份主要有两种方法:
一是用mysqldump程序进行数据备份,这种方法需要与MySQL服务器共同进行;
二是对数据库文件直接进行拷贝,这种方法不需要mysql服务器的支持,但是必须要保证在进行文件备份的过程中没有其他用户修改被备份的数据。
在对数据进行备份应注意以下几点:
1)对数据进行备份必须要定期进行。
2)应该执行更新日志。
3)对更新日志进行备份。
4)应该将备份的文件和数据库放在不同的文件系统上。
5)我们应根据服务器的工作状况和为保持旧日志所提供的磁盘空间的大小来决定日志文件循环的频率和对旧日志文件进行保存的数量。
恢复数据库的过程主要有两个途径:
备份文件和更新日志。
利用备份文件可以将表恢复到进行该备份时的状态,而在备份到发生故障的这段时间内,对表进行修改的结果将会丢失。
更新日志中有对数据库中的表进行修改的所有查询结果,我们可以利用更新日志作为对MySQL的输入来重新执行这些查询。
三、MySQL安全机制的特点
(1)访问控制
MySQL采用灵活的、简单的、非标准化的访问控制方式,它的控制字段可以是普通的数据库对象,也可以是访问该服务器的客户机的IP地址。
目前的一些其它的数据库系统大多采用基于角色的访问控制方式,而MySQL没有角色这一概念,这也是MySQL数据库系统在安全控制方面的一个缺陷,但是可以在对应的应用程序上弥补这一缺陷。
(2)审计功能
对于大中型的数据库系统而言,审计功能是必要的。
但MySQL数据库系统不具有审计的功能。
但是MySQL数据库系统中的日志文件对数据库的一切操作都进行了记录,因此,利用MySQL日志文件和操作系统日志文件相结合的方式也可以方便的实现一些基本的审计功能。
(3)表的类型
MySQL4.0版本可以支持两种不同类型的表:
transcation_safetables类型和transcation_unsafe类型。
transcation_safe类型的表不再以简单的、单一的文件方式表示关系,而是采用自己的缓冲池高速缓存数据。
而transcation_unsafe类型不支持事务处理,采用原子操作。
笔者觉得在某些事务处理比较繁杂的系统中,可使用transcation_safetable类型来维护系统数据完备性。
而对于普通系统,为了提高查询的速度,可以使用transcatioan_unsafetable类型。
3.3SQLServer数据库
对SQLServer数据库我们小组主要参考了白新文、白凤娥发表在《科技情报开发与经济》期刊的论文《SQLServer数据库安全管理技术解析》。
一、访问控制策略
(1)安全账户认证
数据库的安全对于用户而言是非常重要的。
SQLServer在安全管理上以windows2000的安全机制为强大支持,同时融入自身的一些特点。
它主要包括认证模式,这是对登录SQLServer的用户进行验证的。
服务器角色和相应的权限以及数据库角色和相应的权限,这些关系到用户对数据库的操作可以到达的程度。
安全账户认证SQLServer的身份认证模式是指系统确认用户的方式,有两种身份认证模式:
WindowsNT认证模式和SQLServer身份认证模式。
SQLServer数据库管理系统对用户登录进行认证,如果认证成功,用户则可以连接到SQLServer,否则服务器拒绝用户的连接请求。
(2)访问许可确认
用户成功连接到SQLServer后,系统根据数据库中保存的与服务器登录标志相对应的用户账户来判别他们是否具有对数据库的访问权限。
SQLServer有3个默认的用户账号:
sa(系统管理员,在SQLServer中拥有系统和数据库的所有权限)、builtin(SQLServer为每个NT系统管理员提供的默认用户账号,在SQLServer中拥有系统和数据库的所有权限)和guest(默认访问系统用户账号)。
只有访问许可被确认后才可访问指定的数据库对象,否则拒绝用户的访问请求。
二、安全性管理
(1)建立服务器登录标志
SQLServer服务器上建立服务器登录标志,要进入v数据库系统,必须提供正确的登录标志。
可为windows登录标志或SQLServer登录标志。
(2)角色的管理
角色是数据库访问许可的管理单位。
通过角色可以将用户分为不同的类,对角色赋予权限后,该角色的成员自动继承了角色的权限。
在SQLServer中,SQLServer给用户提供了预定义的服务角色(固定服务器角色)和数据库角色(固定数据库角色)。
固定服务器角色和固定数据库角色都是SQLServer内置的,不能进行添加、修改和删除。
用户可根据需要,创建自己的数据库角色,以便对具有同样操作的用户进行统一管理。
第一,固定服务器角色。
服务器角色独立于各个数据库,如果我们在SQLServer中创建一个登录账号后,要赋予登录者具有管理服务器的权限,可以设置登录账号为服务器角色的成员。
第二,固定数据库角色。
固定数据库角色定义在数据库级别上,并且有权进行数据库的管理和操作。
(3)数据库用户的管理
数据库用户的管理,只有合法的数据库用户,才能访问SQLServer数据库。
登录账号只能进入SQLServer,而且需要为登录账号指定进入访问数据库的用户账号,SQLServer的每个数据库有自己的数据库用户账号,信息保存在sysusers表中。
(4)管理权限
当用户连接到SQLServer后,用户若要进行任何涉及更改数据库定义或访问数据的活动,则必须有相应的权限,角色和用户的许可决定了他们对数据库所能执行的操作。
管理权限包括:
授予用户权限,撤销用户权限。
权限的种类包括:
对象权限,语句权限,暗示性权限。
第一,对象权限。
对象权限决定用户对数据库对象所能执行的操作
第二,语句权限。
语句权限决定用户是否有权执行某一语句,这些语句包括:
CREATEDATABASE,CREATEDEFAULT,CREATEFUNCTION,CREATEPROCEDURE,CREATERULE,CREATETABLE,CREATEVIEW,BACKUPDATABASE,BACKUPLOG。
第三,暗示性权限指用户继承的权限,用户可从下面的角色中继承相关的权限:
服务器角色,数据库角色,数据库所有者,对象所有者,T-SQL语句。
GRANT:
授予用户权限。
DENY:
拒绝用户权限。
REVOKE:
删除用户权限
3.归纳总结制作展示PPT。
PPT见附件。
四、实践总结分析
通过本次小组实践活动,我们收益颇丰,不仅仅在专业知识上获得了很大的提高,对数据库的安全性有了进一步的认识,对保障数据库安全性的措施也有了一定的了解,同时也锻炼了我们的团队协作能力和任务分配能力,在实践活动中,我们小组分工明确,各司其职,很好的完成了本次实践任务,在交流讨论的环节中,通过与其他小组的对比,我们也发现了自己的不足,希望在以后的实践中能有所进步,尽量改掉在本次实践活动中体现出来的不足。
最后感谢在本次实践活动中所查询的所有参考文献的作者。
参考文献:
[1]唐建国.MySQL数据库系统安全分析[J].数据库与信息管理,2010-08-15.
[2]郑群,邸铮.SQLServer数据库安全性研究[J].无线互联科技,2016-04-10.
[3]刘壮,于世东.数据库安全性分析[J].信息与电脑,2011年2月刊.
[4]吴溥峰,张玉清.数据库安全综述[J].计算机工程,2006第32卷第12期.
[5]白新文,白凤娥.SQLServer数据库安全管理技术解析[J].科技情报开发与经济,2009第19卷第5期.