《MySQL网络数据库系统的安全性研究.doc》由会员分享,可在线阅读,更多相关《MySQL网络数据库系统的安全性研究.doc(36页珍藏版)》请在三一办公上搜索。
1、MySQL网络数据库系统的安全性研究摘 要 随着互联网的发展,在网络环境下数据库系统面临着很多的威胁,我们怎么去保证数据的保密性、完整性、可靠性和可用性是个值得去研究的问题。虽然现在数据库管理系统自身所带的安全保护措施虽然能够对其安全起一定的保护作用,但仍然存在很多的漏洞,像:帐号的空密码、固定的IP访问端口等,能够利用这些漏洞进行攻击,获得管理员的权限进而控制整个数据库系统。从体系结构和软件层次上思考,将其分为网络安全机制、服务器操作系统安全机制、数据库管理系统安全机制和应用系统安全机制四层。关键字 网络数据库 访问控制 身份认证 ABSTRACTWith the development o
2、f the Internet, under the environment of network database system is facing a lot of threats, we how to ensure that the data privacy, integrity, reliability and usability is worth to study the problem. Although now database management system itself with the security protection measures for their safe
3、ty, however, can play a protective effect, but there are still a lot of vulnerabilities, like: the empty password, fixed account of IP access ports, etc, can use these loopholes to attack and get the administrator privilege and then control the whole database system. From the system structure and so
4、ftware level thinking, which is divided into network security mechanism, the server operating system security mechanism, the database management system security mechanism and application system security mechanism four layers.Key word: network database access control identity authentication目录第一章 绪论51
5、.1论文概述51.2论文研究问题61.3数据库网络安全研究现状71.4论文研究意义以及研究工作71.5小结8第二章 网络数据库的安全和防护92.1网络数据库安全概述92.1.1网络数据库系统的特点92.1.2网络数据库系统的安全内容102.1.3网络数据库的安全要求112.1.4网络数据库服务安全性112.1.4网络数据库安全实施原则142.2小结14第三章 MySQL数据库的安全和防护153.1 MySQl数据库概述153.2 MySQl数据库安全机制153.2.1背景153.2.2访问控制163.2.3 MySQL用户173.2.4MySQL配置183.2.5例行审计203.3MySQL数
6、据库的安全实施223.3.1 mysql-5.1.37的登录223.3.2MySQl用户243.3.3MySQl访问控制293.4小结32第四章 总结334.1论文总结334.2论文的不足334.3展望34参考文献35致谢36第一章 绪论1.1论文概述今年来,随着基于Web的商业和信息系统的蓬勃发展,数据库已经越来越接近网络范畴。这是在Web服务器上进行业务活动的必然结果,以前只能通过借个互相隔离的复杂业务逻辑层来访问数据库,现在则可以通过Web应用环境直接对数据库进行访问,这种方式与以往的方式相比流动性更强,但是安全性能就降低了。这种方式的结果就是,数据库更容易受到攻击。随着向无纸化业务环境
7、持续进军的趋势,人们要在数据库系统中储存越来越多的敏感信息,因此数据库系统就成为越来越有价值的攻击目标。今年来,数据库供应商竞相为大众提供功能丰富的数据库环境,大多数主要系统都支持XML、Web服务、分布式复制、操作系统集成以及其他一些有用的功能。为什么要关注数据的安全能?因为与以前相比,数据库更加容易遭受到攻击,它已经成为了更有价值的攻击目标,所以需要配置更多的安全功能,管理也要更加的谨慎。随着对计算机操作系统,网络协议以及数据库系统的研究和应用越来越深入和广泛,网络数据库系统的安全越来越具有战略意义。信息安全保障能力成为综合国力的一个重要部分。现代社会的信息基本上都需要通过数据库来存储和通
8、过网络来查询,这已经成为信息社会的一个标志。今天,政府机构,军事部门和很多企业都把大量的信息存储到数据库系统上面,这样作为信息系统安全的重要部分,数据库的系统的安全性研究就越来越重要了。1.2论文研究问题这篇论文主要研究网络数据库系统的安全性问题,在我们讨论数据库安全研究现状之前,应该首先详细地说明下我们使用这个术语的意思。通常,当使用“数据库安全研究”这个短语时,指的是对数据库系统安全中明确而实际的漏洞进行研究。我们并不去研究个别安全事件,也不会对营销方面信赖或证明所做的相关努力进行讨论。我们甚至也不会对数据安全中潜在的抽象概念进行学术研究,我们需要研究涉及真实系统中漏洞的发现。我们主要把数
9、据安全漏洞划分为以下几类:(1)网络协议中未经验证的漏洞(2)网络协议中经过验证的漏洞(3)验证协议中的漏洞(4)未经验证访问功能(5)在固有的SQL元素中执行任意代码(6)在可保安全的SQL元素中执行任意代码(7)通过SQL注入进行特权提升(8)本地特权提升的问题1.3数据库网络安全研究现状基于网络的数据库应用系统包括计算机网络,数据库系统,应用程序等很多方面。主要分为两层含义:第一层指的是系统运行安全,涉及:法律、政策保护,如用户是否有合法的权利,政策是否允许等;物理控制的安全;硬件运行的安全;操作系统的安全;第二层是指系统信息方面的安全,包括:用户口令字鉴别;用户存取权限的控制;数据存取
10、权限和控制方式;审计跟踪;数据加密。这些安全问题可以采用很对措施来解决吧,例如加强管理、采用备份等等。数据库管理系统本身提供用户名、密码识别、视图、使用权限控制、审计等管理措施,大型的数据库管理系统Oracle、Sybase、SQL等都有这样的功能。到目前为止,尽管人们已在数据库安全问题上做了很多的研究,但是还是有很多问题没有解决。数据库安全体系结构的研究也才刚刚开始。二十世纪九十年代以来,数据库安全的研究主要围绕着关系数据库系统的访问控制模型展开。1.4论文研究意义以及研究工作论文研究的重点工作是以应用为基础,对网络数据库系统的安全机制,尤其是利用RBAC思想实现安全的访问控制的问题进行研究
11、。全文基于“网络数据库系统安全机制分层”的观点,详细地从不同层次对网络数据库安全机制进行描述和探讨。在WEB服务器的访问控制中,目前多是基于对单个用户的管理,或者简单的矩阵式管理,无法适应大型系统的管理需求。如何利用现有的安全手段提高WEB服务器的安全,为网络数据库的安全访问提供一个可信的面向角色的平台。本文对此做了探讨。研究工作包括对MySQL数据库自身安全策略的分析,基于RBAC的客户端应用程式权限控制方法的研究和服务器端安全访问控制机制的研究。 谈到数据库安全的未来,有一些有趣的推论。如果我们必须做出预测,那么预测的结果就是,在未来几年中,部分安全研究领域会开始关注数据库,这就会出现更多
12、的补丁,以及对真实系统安全更好的理解,而我们都完全依赖与它。1.5小结 本章简单的介绍了网络数据系统安全机制的研究方向和特点,讨论了论文研究的主要问题,主要讨论了数据库存在的各种漏洞,最后描述了本文的研究意义和研究的重点工作。第二章 网络数据库的安全和防护2.1网络数据库安全概述 计算机信息系统安全等级保护数据库管理技术要求作为计算机信息系统安全等级保护技术要求系列标准之一,详细说明了计算机信息系统为了实现GB17859所提出的安全等级保护要求对数据库管理系统的安全技术要求。根据网络数据库安全特点可以画出网络数据库安全模型: 图2.1 网络数据库安全模型2.1.1网络数据库系统的特点(1)数据
13、的结构化,数据的共享性好,数据的独立性好,数据存储粒度小,数据管理系统,为用户提供了友好的接口。(2)数据模型是数据库系统的核心和基础,现有的数据库系统均是基于某种数据模型的。(3)数据库管理系统是数据库系统的核心。(4)数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。数据库系统的基础和核心是DBMS(5)数据的语法关系到数据库的安全。(6)客体之间的信息相关性可能比较大,我们应该去研究推理攻击怎么去防范。2.1.2网络数据库系统的安全内容(1)保障数据库系统的保密性:(A)保证高级别的信息不会无缘无故的流向低级别的用户;(B)访问数据库系统的用户要进行身
14、份认证;(C)要严格的控制数据库系统的访问;(D)推理的攻击对数据库系统的影响;(E)数据库系统必须要有可审计性;(F)隐蔽信道攻击数据库系统时必须要做好充分的准备。(2)保障数据库系统的完整性:(A)保障数据库系统的物理完整性;(B)保障数据库系统的逻辑完整性;(C)保障数据库系统的元素完整性;(3)数据库系统的可用性:在用户需要的时候,授权用户能够在数据库系统中存储或者取出信息,访问信息的技术。2.1.3网络数据库的安全要求作为信息数据的存储地和处理地,数据库及管理系统在大网络环境下,应该能对信息数据的安全存储和安全访问提供服务,并具有安全防范的能力。具体有以下几个方面:(1)要求数据库具
15、有保密性,就是非法用户访问数据库是能够被阻止,保护数据库中数据不被泄露出去。(2)要求数据库具有完整性和一致性,不正确的操作或非法用户的恶意攻击对数据库进行时能被防止;(3)要求数据库具有可用性,即能防止或者即使修复因软、硬件系统的错误所造成的数据库恶意破坏。(4)要求能对数据库各种变化作跟踪记录,这样就是方便追查并防止否认对数据库的安全责任。2.1.4网络数据库服务安全性(1)数据库的完整性数据的中心仓库就是数据库,要保证用户能信赖其数据的准确性,必须保证对其进行更新的人只有有管理权限的人才能进行。有两种情况会影响数据库的完整性:(A)破坏整个数据库。(B)有些数据项不可读。(2)元素的完整
16、性正确性和准确性是数据库元素的完整性的标志。数据库管理员负责把正确的数据放入数据库。数据库管理系统必须帮助用户再输入的时候能够发现错误,能够修正查出错误的数据。(3)可审计性数据库的审计可以协助维持数据库的完整性,一旦所有内容都启动且正在运行,就不应该在不管理的情况下让MySQL独自运行。如果一级防范进行得充分,就会很好地防御攻击者,但是知道有人在试图攻击你将会很有帮助,即使他们没有成功。关键是要时刻保持着警惕。(4)访问控制数据库系统的访问控制比较复杂。相比于操作系统,操作系统的文件,是非相关的项目。而数据库的记录、字段和元素都是有着关联的。用户通过读其他文件是不能来确定某文件的内容,但是可
17、以通过只读其他的数据库元素而确定一个元素,所以说推测数据是可能的。(5)用户认证严格的用户认证是保证数据库管理系统安全的重要措施,用户的这些认证基本都是在操作系统完成的认证的结果上再加上去的。数据库管理系统必须作自己的认证。(6)可用性数据库系统对可用性的要求是很高的。可用性有一个问题来自对两个用户请求的同一个记录的仲裁,另一个是要求扣发某些非保护数据以免泄露被保护的数据。数据库应该随时保持可用性。(7)数据库加密传递信息和存储信息的重要保护手段市数据库加密。保证对入侵事实上不能破是信息的加密;应快速存取数据是合法用户;空间和时间的消耗小。应依据系统的具体需要进行控制对数据库是否需要加密和如何
18、加密。这是一个复杂的工作,去建设一个安全的基于网络的数据库应用系统,建立一个对安全策略的整体设计的模型是很有好处的。为了保证系统的安全性,根据安全威胁的途径,实施安全任务和原则,考虑MySQL网络数据库管理系统的安全特性和应用程序安全特性,可以建立下面的模型进行安全控制。图2.2 系统安全防护模型2.1.4网络数据库安全实施原则最小特权原则:用户只拥有完成任务所需要的信息访问权限。最小泄密原则:用户有责任也必须要保护自己的访问权内的信息。多重保护原则:任何安全保护措施不是绝对的安全,都有可能被破坏。所以说要建立一个多重的保护系统,有一个保护系统被攻破时,另外的保护系统还是能够保护数据库的安全。
19、综合性原则:在整个系统上全方位的进行安全措施的施展。2.2小结 本章介绍了网络数据的的特点,安全内容,还有网络数据的安全要求等等。将数据库系统安全问题分为保密性、完整性和可用性。第三章 MySQL数据库的安全和防护3.1 MySQl数据库概述MySQl数据库声称是世界上最受欢迎的开放源数据,这是有很好地理由的。MySQl是免费的,可运行在多种平台上。它相当简单,容易配置,即使在很重的负荷下也能运行良好。与其他的一些数据库相比,虽然MySQl非常简单,但是仍然有大量的各种与安全相关的配置问题。MySQl是一个不同寻常的开源项目,其数据库服务器源代码属于瑞典的一家公司,以GPL和商业许可证发布。随
20、着商业许可证一起发布的还有一个支持程序包,该程序包非常重要,它使得其他公司可以将MySQl引擎插入到他们的产品中而无需开放其他产品源代码。3.2 MySQl数据库安全机制 本节重点讨论MySQl数据库的安全机制。具体分为:背景、访问控制、MySQl的用户、MySQl配置、例行审计等五个方面。3.2.1背景如果想了解攻击者,那么拥有最新的信息来源是非常重要的。(1)MySQL数据库有一支非常敏感的安全团队,他们会将第三方查明的信息以及BUG报告反馈在文档中。这些关于MySQL的安全文档是我们收集MySQL安全材料的第一选择。(2)MySQL会频繁的发布新的版本。当它发布新版本时,总会有一个非常综
21、合的变更日志,它会详细地记录下新版本中新增加的或者是修改过的内容。如果您正在一个项目的某个阶段,它会使您有时间决定DBMS,并且您正在关注MySQL的话,那么这将帮助您进一步理解哪个版本有哪些特色和旧版本中有哪些BUG。(3)了解您的BUG!有规律地检查脆弱数据库,如Security Focus以及ICAT,看是否有MySQL bug,并且订阅安全邮件列表。基于您自己的特定环境,最好的方法就是一旦有信息公布就立即关注这些问题,而不是等待着补丁的发布。3.2.2访问控制 MySQL为我们提供了一套简单而且有效的安全管理措施。MySQL管理员保护数据库内容的安全,似的记录只能由经过严格认证的那些用
22、户访问。包括内部安全性和外部安全性。(1)内部安全性关心文件系统级的问题就是内部安全性,像保护MySQL数据库目录避免遭到拥有运行服务器的机器账号的用户攻击。但是,如果数据内容的文件许可权过分随意,那么有人可以将对应这些表的文件进行简单的替换,这样的话,内部的安全性就不能很好地确保适当的建立对网络上客户机访问的授权表的控制。数据库管理员应保护的内容包括:数据库文件和日志文件。(2)外部安全性 外部安全性关心客户机从外部连接的问题,像防止MySQL服务器遭受利用网络与服务器连接请求导致的数据库内容访问攻击。MySQL有一套先进但是不是很标准的安全/授权系统,其授权机制的基本作用就是给某个主机上的
23、用户对某个数据库对象一些权限。3.2.3 MySQL用户一旦操作系统受到保护,就需要锁定MySQL本身。这样做的一步就是准备用户账户和特权模型。(1)为rootlocalhost账户设置一个“强健”的口令。这样做的原因很明显;在MySQL中部存在多次输错口令后就将用户锁定的这种情况。因此,对于MySQL用户名和口令的brute-force攻击是很有效的。设置这样的“强健”口令能够帮助预防攻击者的猜测口令行为。(2)删除所有非root的MySQL用户。在初始的安装阶段,了解哪些用户能够访问数据库是很重要的。最好的方法就是将这些用户从最核心处删除,然后建立您所需要的用户。(3)将MySQL的roo
24、t用户重命名为较复杂的名字(4)如果启用了远程连接,那么在建立用户时要指定GRANT语句中的REQUIRE SSL。它会为特殊用户在连接时执行SSL加密。这样做有两个好处:第一,它保证用户所写的开发脚本不会其作用;第二,它保证了口令盘问回答的顺序。(5)为每个Web应用创建一个MySQL用户。例如,可以有一个MySQL用户来更新表格,另一个低特权的用户来从表格中进行选择。如果攻击者能够攻击某个应用程序,那么它将会调整组件的特权以使攻击者受到限制。(6)确保MySQL用户都能受到IP地址限制,也能受到口令的限制。一旦嵌入MySQL配置,那么考虑下限制用户的IP地址,是用户无法自行验证。(7)如果
25、账户不一定需要,不要随便给出账户特权。如果必须与MySQL下的文件系统相互作用,那么考虑创建个单独的MySQL账户,这样就可以进行应用了。(8)不要让任何人进入mysql.user表格。因为如果他们能从用户表格中读取口令散列,那么就能以其他任意用户身份登录。3.2.4MySQL配置一旦用户和特权问题得以解决,那么还有其他一些配置方面的修改需要去做,以便提高安全系数。(1)在MySQL文档中“general query log”被认为是调试时的一个特色。它并不记录这些查询的结果或返回的数据,但可以提供给我们线索谁在我们的数据库上做了什么,所以值得对该配置进行修改。查询日志在默认情况下是禁用的,所
26、以必须要用log来进行激活。(2)通过在f 文件中加入set-variable=local-infile=0来禁用LOAD DATA LOCAL INFILE命令。这个命令是LOAD DATA语句的一个变体,它允许客户机直接从本地文件系统中的文件上传数据至MySQL表中。这可能会被攻击者在某些情况下用以在客户机主机上阅读文件。(3)删除任何不用的UDF。UDF可能出乎意料地产生危险。MyPHP、MyPERL、MyLUA等等都允许攻击者通过一些简单的脚本命令在服务器上大肆扩展自己的控制权。如果您没有使用UDF,却在mysql.fuc表格中看见了它们,那么应当立即删除。(4)如果仅仅正在使用本地连
27、接,那么通过设置skip-networking选项来禁用TCP/IP连接。因为有时远程主机没有必要去连接MySQL。(5)根据具体的操作系统以及数据目录的配置情况,可以通过设置skip-symbolic-links选项来禁用symbolic链接。MySQL的symbolic链接在Windows平台上以受限制的方式得到支持,限制包括创建一个名为“database”.sym的文件,以及创建通往数据库所有表格文件所在目录的路径。在一些Unix系统上,symbolic链接会导致一些问题。如果用户能够修改一个symbolic链接,那么它们将能够与文件系统相互作用,从而使真正的mysql用户也受到限制。(
28、6)删除默认的测试数据库。默认情况下,测试数据库是存在的,应将该数据库删除。它能访问的有效数据库名字可能对攻击者有用,所以默认的测试数据库应该删除。(1)确保MySQL通信量是加密的。在默认情况下,MySQL流量是不加密的。这意味着如果一个攻击者能够在客户机和服务之间建立的连接上进行窃听,那么他就能获取用户名和口令盘问/回答序列。3.2.5例行审计一旦所有内容都启动且正在运行,就不应该在不管理的情况下让MySQL独自运行。如果一级防范进行得充分,就会很好地防御攻击者,但是知道有人在试图攻击你将会很有帮助,即使他们没有成功。关键是要时刻保持着警惕。(1)检查日志如果已经用log选项配置了查询日志
29、,我们应该定期查看正在发生些什么事情。特别是查看是否有一些常用的SQL注入攻击,并且使用load-file、以及outfile的文件系统语法。定期检查错误日志也是很重要的,尽管它们提供的信息没有查询日志那么多。记住,与日志进行交互时,日志数据是调试敏感的;如果正把它引入到其他存储库进行分析,记住查询日志可能包含用户名和口令。(2)定期计算用户数,并且使用show grants语句查看哪些特权授予了哪些用户。例如:mysqlselect user, host form mysql.user;user | host| Monty | root | local host |2 rows in set
30、 (0.00 sec)mysql show grants for Monty%;grants for Monty%|GRANT USAGE OM .TO Monty% IDENTIFIED BY PASSWORD5d2el9393cc5ef67|GRANT SELECT ON test.* TO Monty%|2 rows in set (0.00sec)Mysqlshow grants for rootlocalhost;|Grants for rootlocalhost|GRANT ALL PRIVILEGES ON *.* TO rootlocalhost IDENTIFIED BY P
31、ASSWORD 5d2el9393cc5ef67 WINTH GRANT OPTION|1 row in set (0.00 sec)我们可能发现在数据库中有两个用户,rootlocalhost和monty,其中monty能从任意主机登录但仅在测试数据库上有选择的特权。另外,我们也可以发现monty和root有相同的口令。(3)周期性地对口令散列进行一些快速检查。MySQL中的散列值是没有加盐的,这意味着同样的口令总是散列到同一个值。如果使用Mysql select user、password from mysql.user;|User | password|Root | 5d2el9393c
32、c5ef6 |Monty| 5d2el9393cc5ef67|2 rows in set (0.00 sec)就会看到哪些账户拥有相同的口令。3.3MySQL数据库的安全实施 本小节对MySQL数据库的安全方面的用户和访问控制方面做研究。运用SQL语言在MySQL应用软件中做了一些简单的实现。运用的是mysql-5.1.37-win32。3.3.1 mysql-5.1.37的登录 服务器:localhost 端口:3306 连接,类型Direct 字符集:utf8。图3.1 mysql-5.1.37的登录图3.2用户登录3.3.2MySQl用户 CREATE USER用于创建新的MySQL账户
33、。要使用CREATE USER,您必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。对于每个账户,CREATE USER会在没有权限的mysql.user表中创建一个新记录。如果 账户已经存在,则出现错误。使用自选的IDENTIFIED BY子句,可以为账户给定一个密码。user值和 密码的给定方法和GRANT语句一样。特别是,要在纯文本中指定密码,需忽略PASSWORD关键词。要把 密码指定为由PASSWORD()函数返回的混编值,需包含关键字PASSWORD。首先,使用MySQL程序以MySQL root用户来连接服务器:shell MySQL -user=
34、root MySQL以root连接到服务器上后,可以添加新账户。下面的语句使用GRANT来设置四个新账户:mysql GRANT ALL PRIVILEGES ON *.* TO montylocalhost - IDENTIFIED BY some_pass WITH GRANT OPTION;mysql GRANT ALL PRIVILEGES ON *.* TO monty% - IDENTIFIED BY some_pass WITH GRANT OPTION;mysql GRANT RELOAD,PROCESS ON *.* TO adminlocalhost;mysql GRANT
35、 USAGE ON *.* TO dummylocalhost;创建的账户有下面的属性: 其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户 (montylocalhost)只用于从本机连接时。另一个账户(monty%)可用于从其它主机连接。请注意monty的两个账户必须能从任何主机以monty连接。没有localhost账户,当monty从本机连接时,mysql_install_db创建的localhost的匿名用户账户将占先。结果是,monty将被视为匿名用户。原因是匿名用户账户的Host列值比monty%账户更具
36、体,这样在user表排序顺序中排在前面。 一个账户有用户名admin,没有密码。该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。这些权限允许admin用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin processlist。未授予访问数据库的权限。你可以通过GRANT语句添加此类权限。 一个账户有用户名dummy,没有密码。该账户只用于从本机连接。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户而不授予任何权限。用上面的SQ语言运行后会得到4个不同管理权限
37、的用户,下图为montylocalhost用户,只能从本地连接,是超级账户,具有数据库系统的所有权限。图3.3超级用户-只能从本机登录下图为用户monty%,它和上面的用户一样,具有管理数据库系统的全部权限,但是可以其他主机连接。图3.4超级用户-可以从其他主机连接 下图为用户admin,该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。图3.5受限制用户-只能本地连接 下图为用户dummy,没有权限,只能从本地连接。图3.6无权限用户3.3.3MySQl访问控制 下面的例子创建3个账户,允许它们访问专用数据库。每个账户的用户名为custom,密码为obscure。要想用GR
38、ANT创建账户,使用下面的语句:/创建用户GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.* TO custom1localhost IDENTIFIED BY obscure; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON expenses.* TO custom2whitehouse.gov IDENTIFIED BY obscure;GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON customer.* TO cus
39、tom3server.domain IDENTIFIED BY obscure; /将创建的用户与相应的数据库对应起来INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES(localhost,bankaccount,custom1,Y,Y,Y,Y,Y,Y);INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Dr
40、op_priv) VALUES(whitehouse.gov,expenses,custom2,Y,Y,Y,Y,Y,Y);INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES(server.domain,customer,custom3,Y,Y,Y,Y,Y,Y);这3个账户可以用于· 第1个账户可以访问bankaccount数据库,但只能从本机访问。第2个账户可以访问expenses数据库,但只能从主机whitehouse
41、.gov访问。第3个账户可以访问customer数据库,但只能从主机server.domain访问。下图为可以访问bankaccount数据库的custom1。图3.6用户custom1下图为只能从主机whitehouse.gov访问expenses数据库的custom2。因为它只能从whitehouse.gov,所以你从mysql-5.1.37直接登录会出现下面的对话框。图3.7用户custom2 用户custom3和用户custom2一样,因为都是要从外部访问数据库,所以会出现一样的效果。3.4小结 本章首先介绍了MySQl网络数据的特点等。让后重点研究了MySQl网络数据的安全机制。总共
42、分为5个方面:MySQl的背景、访问控制、MySQl的用户、MySQl配置、还有例行审计。针对MySQl的不同安全机制我们可以用不同的方法来解决安全问题。再对MySQL数据库的安全方面的用户和访问控制方面做研究。运用SQL语言在MySQL应用软件中做了一些简单的实现 第四章 总结4.1论文总结在计算机技术飞速发展的今天,基于网络的数据库应用系统也越来越受到人们的重视并且得到了广泛的应用。而网络数据库系统的安全机制也随之不断的发展,不断的跟新,不断的丰富。本文在理论上对网络数据的安全问题做了详细地分析主要的研究有:(1)对网络数据库技术及其安全内容、特点、安全要求进行简单的描述。(2)分析网络数
43、据库的安全与防护。(3)重点选择MySQl网络数据库系统,详细地对其安全问题于防护做了研究。4.2论文的不足尽管在课题中对网络数据库中的MySQL网络数据库的安全保护机制作了详尽的分析。但是由于数据库是个相当复杂的管理数据的系统,因此,在网络的环境下,随着黑客攻击技术的不断提高,这仍然是个高难度的研究课题去保护网络数据库的安全。对于保护网络数据库安全这一领域,我们还是有很多工作需要去做,需要去更加深入的研究。4.3展望网络数据库系统安全机制研究是个复杂的问题。数据库管理系统是网络数据库系统的核心,我们可以利用MySQL提供的各种东西为基础,结合实际的应用建立一个能够面向对象类的安全性服务。数据
44、完整性等方面提高MySQL的应用性能。在客户端安全控制方法中,如何从各种控制对象,和控制访问权限等对象中抽象出功能角色,构造角色程序关系等问题是值得进一步探讨的问题。就网络数据库安全机制而言,值得深入探讨的还有好多好多。这些问题都需要我们继续努力去研究,去完善,这样才能使网络数据库的安全得到更好的保障。参考文献1唐汉明,兰丽华,关宝军等MySQL数据库开发、优化与管理维护 北京:人民邮电出版社,2008年,第25-45页。2David Litchfield Chris Anley著,闫雷鸣 刑苏霄 翻译 数据库黑客大曝光 出版地:北京 清华大学出版社,2006年,第222-266页3朱小平 网
45、络数据库安全技术的研究与实现 同济大学硕士论文 2006年,第5-34页4高延玲 网络数据库安全研究与应用 西安电子科技大学硕士论文 2003年,第8-33页5美Ian Gilfillan著,王军 等译MySQL4 从入门到精通 出版地:北京 电子工业出版社 2003年版,第129-168页6张海,黄健昌,祝定泽 MySQL核心内幕 北京:清华大学出版社 2010年,第199-240页7唐小东 基于Web的网络数据库安全研究 武汉理工大学硕士论文 2002年,第7-36页致谢本论文是在我的指导老师杨雪松老师的关怀和悉心指导下完成的。他严谨的教学态度、精益求精的工作作风,一直感染和激励着我。从课题的选择到论文的最终完成,杨老师都始终给予我悉心的指导和不懈的支持。在这里,我谨向杨老师表达最衷心的感谢。 其次,我要感谢和我一起做毕业设计们同学,然后,我还要感谢大学四年来所有的老师,为我们打下专业知识的基础;同时我还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业论文才会得以顺利完成。最后在这里我还要感谢学院的各位领导与老师,四年的大学生活即将结束,是你们在这四年里给予我关怀与教导。最后,我要感谢我的父母,是他们给了我在大学学习的机会,没有你们给予我的支持,就没有今天的我,非常感谢西北民族大学过去四年来对我的栽培。