浅谈数据库安全技术研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅谈数据库安全技术研究

发表时间:2009-02-11T15:56:13.560Z 来源:《黑龙江科技信息》2008年9月下供稿作者:田丹刘申菊

[导读] 针对目前可能存在的威胁数据库安全性的各类风险,结合实例展开对于数据库安全技术研究。

摘要:从数据库安全性的基本概念入手,在其安全体系的基础上,针对目前可能存在的威胁数据库安全性的各类风险,结合实例展开对于数据库安全技术研究。

关键词:数据库安全性;安全体系;风险

引言

随着计算机网络技术的发展,越来越多的人们开始使用网络传送和共享数据,这不仅方便了用户,同时提高了数据的利用率。与此同时,数据在网络中传送的安全性以及保存这些数据的数据库的安全性也逐渐成为研究的热点。下面结合数据库安全体系的构成,分析各种潜在的安全威胁,结合实例进行对于数据库安全技术的研究。

1 数据库安全性概念及安全体系

数据库安全性是指保护数据库以防止非法用户的越权使用、窃取、更改或破坏数据。数据库安全性涉及到很多层面,例如SQL Server 数据库的安全性包括自身的安全机制、外部网络环境、操作人员的技术水平等。因此,数据库的安全性可以划分为三个层次:网络系统安全:这是数据库的第一个安全屏障。目前网络系统面临的主要威胁有木马程序、网络欺骗、入侵和病毒等。操作系统安全:本层次的安全问题主要来自网络内使用的操作系统的安全。例如目前通用的操作系统Windows 2003 Server主要包括:操作系统本身的缺陷;对操作系统的安全配置,即相关安全策略配置;病毒的威胁三个方面。

数据库管理系统安全:根据采用的数据库管理系统的不同采用的安全设置方法不同。针对SQL Server 2000可以由数据库管理员将数据库用户分类,不同的用户有不同的访问权限;也可以采用视图的方法进行信息隔离,防止用户对基本表的操作;同时要定期进行数据库备份操作,防止由于系统问题导致的数据丢失。

这三个层次构筑成数据库的安全体系,与数据安全的关系是逐步紧密的。

2 数据库系统面临的主要风险

数据库系统在实际应用中存在来自各方面的安全风险,最终引起各类安全问题。数据库系统的面临的安全风险大体划分为: 2.1操作系统的风险

数据库系统的安全性最终要靠操作系统和硬件设备所提供的环境,如果操作系统允许用户直接存取数据库文件,则在数据库系统中采取最可靠的安全措施也没有用。

2.2管理的风险

主要指用户的安全意识,对信息网络安全的重视程度及相关的安全管理措施。

2.3用户的风险

主要表现在用户账号和对特定数据库对象的操作权限。

2.4数据库管理系统内部的风险

3 数据库安全技术研究

针对以上存在的各种风险,提出以下几种防范技术。

3.1数据加密技术

对数据库中存储的重要数据进行加密处理,例如采用MD5 算法,以实现数据存储的安全保护。数据加密以后,在数据库表中存储的是加密后的信息,系统管理员也不能见到明文,只有在执行了相应的解密算法后,能正确进入数据库中,大大提高了关键数据的安全性。

3.2用户认证技术

用户认证技术是系统提供的最外层安全保护措施。对于SQL Server 2000提供了两种用户验证方式,即Windows用户身份验证和混合模式验证。通过用户身份验证,可以阻止未授权用户的访问,而通过用户身份识别,可以防止用户的越权访问。

3.3访问控制技术

访问控制是数据库管理系统内部对已经进入系统的用户的控制,可防止系统安全漏洞。通常采用下面两种方法进行:(1)按系统模块对用户授权

每个模块对不同用户设置不同权限,如用户A无权进入模块A、仅可查询模块B,用户B可以进入模块A,可以执行统计操作等。系统模块名、用户登录名与用户权限可保存在同一数据库中。

(2)将数据库系统权限赋予用户

用户访问服务器时需要认证用户的身份、确认用户是否被授权。通常数据库管理系统主要使用的是基于角色的访问控制。

3.4采取必要的防注入技术

目前流行的SQL Injection即“SQL注入”,就是利用某些数据库的外部接口把用户数据插入到实际的数据库操作语言当中,从而达到入侵数据库乃至操作系统的目的。典型的利用SQL Injection的攻击方法如下。

例如:使用用户名为tt,密码为rr的一个普通用户访问本地网站,其主机头为,端口号为8081,在地址栏输入::8081/index.asp?username=tt&password=rr

返回“成功登录”。说明输入了正确的用户和密码,如果输入密码错误,如下:

:8081/index.asp?username=tt&password=yy

将返回“登录失败”。此时用户无法进入系统。但是,如果输入如下的数据:

/index.asp?username='tt' —— '&password=yy

则返回“成功登录”,即不需要密码可以直接进入系统。

以上就是SQL注入的应用,因为“——”在SQL Server中代表注释符,若针对系统默认的管理员用户Administrator,输入

Administrator'——,这样该语句忽略密码的问题,所以无论密码是什么,这个语句都会返回成功登录。

可以通过以下方法在最大程度上避免其发生:

(1)替换或删除敏感字符或者字符串。可以对用户输入进行过滤,对单引号、双引号以及“——”等符号进行过滤。例如:将单引号转换为两个单引号:

aa = replace(aa, “'”, “''”)

(2)对SQL Server进行必要的安全配置,在服务器正式处理之前对提交数据的合法性进行检查。(3)改变SQL Server的端口号。目前针对SQL Server 的攻击主要扫描的是1433端口。因此可以改变其默认端口号,这样虽然不能从根本上解决问题,但可以防止一般的端口扫描。

结束语

数据库的安全与网络安全、操作系统安全以及数据库管理系统安全是紧密结合的。必须根据具体的应用环境的安全需要进行分析,并制定统一的安全管理策略,保证数据库系统的安全。

参考文献

[1]曹效阳.浅谈SQL Server中的安全策略[J].现代计算机,2006.

[2]张勇,李力.WEB环境下SQL注入攻击的检测与防御[J].现代电子技术,2004(3).

[3]刘启原,刘怡.数据库与信息系统的安全[M].北京:科学出版社,2000.

相关文档
最新文档