SQL SERVE的数据库安全性研究

时间:2022-09-14 03:44:23

SQL SERVE的数据库安全性研究

摘要:针对目前面临的数据库安全问题,文章从数据库系统的安全模型入手,对SqlSever数据库的安全配置进行描述,分析讨论了SQL SERVER数据库使用中的安全问题,针对不同的用户分析了可能存在的安全问题,并提出了一些具体的解决方法和建议,从而提高用户对数据库安全防范意识。

关键词:SQL Server;数据库;数据库安全;访问控制

中图分类号:TP393文献标识码:A文章编号:1009-2374(2009)02-0037-02

SQL Server是微软公司开发和推广的数据库管理系统(DBMS),在Windows NT或Windows2000下运行,是一个客户朋艮务器关系式数据库系统。由于SQL Server实现和管理数据库应用程序最为容易,是设计中、小型数据库的首选工具,在各个方面得到了广泛的应用。

一、SQL SERVER中的安全性问题

(一)模型中的数据库人口

数据库的使用者可以分成三类:一般的用户,管理员(包括数据库库管理员和系统管理员)程序员。不同的数据库使用者进人数据库的人口也是不同的。

一般的用户(数据库应用程序的使用者)是从模型中的最一用户来访问、存取、控制数据库的。用户标识和鉴别是模型提供的最外层的安全包保护措施。从技术角度讲,这个人口是最安全的。数据库的安全性由程序保证。这就要求程序代码的健壮性和安全性。由于程序代码的问题导致的数据库安全性早已引起重视。很多文献列出的注入SQL攻击就是程序代码引起的,这些问题,程序员在编写代码的过程要注意。从管理角度讲,用户名和口令要保密。只要用户的权限不是很高,即使泄漏了,也只是当前用户对应得外模式数据,对整个数据库来讲,这种威胁并不是致命的。

管理员(数据库及数据库应用系统的管理员。包括数据库库管理员和系统管理员)的安全性是至关重要的,他可以从模型的任意一层进入数据库,从第1层用户进入的话,安全问题和一般用户一样。从第2层数据库管理进入的话,要特别注意,这个时候管理员的权限很大,安全问题很突出。一般管理员(区别于超级管理员)不能直接在数据库服务器上通过DBMS进人数据库。

程序员(数据库应用程序的开发者)因为其特殊性,在应用系统开发的过程中,和数据库管理员一样,可以从OS,DBMS和用户进入数据库。甚至有时候是以超级管理员的身份进入数据库的,这就使得数据库的安全问题尤为突出,另外,程序员在数据库应用程序正常使用以后,其身份又只相当于一般的用户,甚至没有操作的权限,那么从管理员、甚至是超级管理员身份变成一般用户的过程中,用户和密码的泄露、传播,数据库操作权限的过大都给数据库的正确、安全运行带来影响,甚至是致命的问题。

(二)存取控制

数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这就是数据库系统的存取控制机制。从数据库安全的技术角度来看,MS SQL SERVER2000用用户权限定义和合法权限检查机制保证了系统的安全性,但是在数据库管理层面上,往往是用户权限分配和使用过程中的扩大化和滥用,导致存取控制形同虚设.造成安全隐患。下面是实际使用MS SQL SERVER2000中的问题:

1.MS SQL SERVER2000有一个SA的默认,很多数据库使用者直接用的就是这个用户,这样,也就是说不管当前的数据库使用者真正访问和操作数据库的权限有多大,一律赋予超级用户权限,可以访问和操作数据库的所有数据,存取控制形同虚设,数据库从一定程度上就完全不安全。

2.某些情况下,为方便管理,超级用户会新建用户,但赋予新建用户的权限过大,有些甚至具有超级用户的权限,这样存取控制同样形同虚设。

3.对重要的数据库管理员没有密码或弱密码,MS SQLSERVER2000默认安装,SA的密码为空,一些用户会取像“1234”这样一些密码,这就是弱密码,同样其他超级用户也存在没有密码或弱密码的情况,这样很容易遭受攻击,等于把SA交给所有能连接计算机的人员。

4.对于上述的三种情况,因为存取控制的形同虚设不仅带来数据库的安全问题,还能带来整个计算机系统的安全性问题。MSSQL SERVER中,sa或者其他超级用户,或者是MASTER的存储过程执行权限者,可以通过执行MASTER 中的存储过程cmd shell execute,增加任意级别的操作系统用户,从而控制整个计算机系统,进行任意的破坏。具体操作步骤:

STEPh以SA用户登陆数据库服务器;STEP2:执行存储过程MASTER。CMD―SHELL―EXECUTE“NET ADD USERNAME PASSWORD/USERE”:STEP3: 执行存储过程MASTER.CMD_SHELL―EXECUTE“NET ADD USERNAME ADMINISTRATOR/GROUP”:STE P4:用新增加超级用户进入服务器操作系统。

二、SQL Sewer数据库访问控制策略

访问控制(access contro1)是对用户访问数据库各种资源的权力的控制。SQL Server对用户的访问控制分为两个阶段:一是安全帐户认证。二是访问许可认证。在安全帐户认证阶段。Windows操作系统或SQL Server对用户登录进行认证。如果认证成功,用户则可连接到SQL Server,否则数据库服务器将拒绝用户的连接请求访问许可确认指的是用户成功连接到SQL Server后。系统根据数据库中保存的与服务器登录标识相对应的用户帐户来判断他们是否拥有对数据库的访问许可。

(一)SQL Server的安全帐户认证模式

SQL Server服务器安全认证有以下两种模式:Windows认证模式和Windows与SQL Server混合认证模式。Windows认证更为安全。因为Windows操作系统具有较高的安全性(C2级安全标准)。SQL Server认证管理较为简单,当SQL Server在Windows NT或Windows2000上运行时,系统管理员必须制定系统使用的认证模式。当采用混合认证模式时,SQL Server既允许使用Windows认证模式又允许使用SQL Server认证模式。

在完成SQL Server安装以后,SQL Server就建立了一个特殊帐户sa。sa是系统管理员(System Administrator)的简称,sa帐户拥有最高的管理权限,可以执行服务器范围内的所有操作,既不能更改sa用户名称,也不能删除sa,但可以更改其密码。在刚刚完成SQL Server的安装时候,sa帐户没有任何密码,所以要尽快为其设置密码。

(二)访问许可确认

用户在实现安全登录之后,检验用户的下一个安全等级是数据库访问权限。数据库的访问权限是通过映射数据库的用户和登录帐户之间的关系来实现。安全帐户认证决定用户能否向SQL Server发送命令,而访问权限确认则决定用户能否在数据库中执行T―SQL语句。

三、合理分配权限

上一篇:关于注射模注射时熔接缝的防制 下一篇:智能防火喷淋系统在防火重点单位中的应用研究