SQL Server数据库在企业中的应用越来越多,安全性显得越来越突出。特别是最近一段时间以来,一种新的网络攻击技术开始在Internet上快速流行,那就是“SQL Injection”,俗称“脚本注入式攻击”,只要被不法分子盯上的系统,恰好您使用的数据库是SQL Server 2000的话,那么被成功入侵的概率高达90%。
如何加强数据库的安全呢?本文将向您全面介绍保护SQL Server 2000数据库安全配置的十七招。
第一招 首先确认是否已经安装了操作系统和SQL Server的最新安全补丁。很多黑客攻击不是通过SQL Server本身的漏洞来完成资料窃取的,而是通过操作系统漏洞来完成,然后进入到数据库中。
第二招 根据业务系统需求,选择一个考虑到最大安全性但是同时又不影响功能的网络协议。如TCP/IP协议、命名管道等。
第三招 众所周知,SQL Server的“SA”账户在默认状态下是空密码的。给其设定一个足够复杂并且足够长度密码来加强其安全性,同时把该密码保存在一个安全的地方。
配置方法:开始→所有程序→Microsoft SQL Server→企业管理器,展开控制台根目录,选择“安全性”,展开,点击“登录”,在右侧的用户列表中可以看到有SA这个用户。双击打开SA用户,可以更改SA用户的密码。
第四招 建立一个低权限用户做为SQL服务器服务的查询操作专用账户,不要用LocalSystem或SA。 这个账户应该有最小的权利,比如仅能执行Select语句,对其他的DDL操纵语句都没有权限。
配置方法:展开控制台根目录,选择“数据库”,展开,点击“用户”,在右侧用户列表中可以看到已经授权的用户,在默认状态下只有“SA”和“Guest”两个用户。双击打开已经建立的低权限账户,打开数据库用户属性。选择数据库脚色,尽可能低的权限。打开“权限”按钮,赋予用户相应的权限,最好全部是Select查询权限。
第五招 确认SQL服务器系统安装在NTFS分区,且权限控制列表 被应用。如果黑客得到对数据库系统的存取操作权限,该层权限可以阻止入侵者进一步破坏数据。Windows 2000或者2003 Server都是需要安装在NTFS分区。
配置方法:找到SQL Server安装文件夹,默认安装在“X:Program FilesMicrosoft SQL Server”目录下。鼠标右键,选择“属性”。注意查看“共享”属性选项卡,一定不要共享。点击安全选项,只有许可的用户才能访问这个文件夹。
第六招 严格禁止使用Xp_cmdshell命令。限制所有的账户拥有操作、使用XP_cmdshell的权限。如果黑客或者其他有恶意的人,拥有操作这个命令的权限,那它就可以轻松得到系统管理员的权限。
第七招 在业务应用系统中,如果不需要就停用对象连接与嵌入自动化储存程序。当这些储存程序被停用的时候,企业管理器部分功能可能丢失。比如:DTS数据导入导出。同时,禁用部分注册表存取程序。
注意:Xp_regread和 xp_regwrite这两个存储过程如果删除,会影响一些主要功能包括日志和SP的安装。建议保留。
第八招 关闭远程服务器连接。如果允许使用远程服务器连接,入侵者在自己的机器上安装SQL Server就可以使用数据库服务器连接到你服务器的数据库上,这是一个危险级别很高的安全风险。
配置方法:展开控制台根目录,选择“(Local)Windows NT”,鼠标右键,选择“属性”,在配置窗口中选择“连接”选项卡,去掉“允许其他SQL Server使用RPC远程连接到本SQL Server”选项。这样就可以防止他人使用数据库的恶意连接。如图1所示。
第九招 注意SQL服务器的物理安全。数据机房禁止不相关的人员进入,把Server锁在机柜里,并且注意钥匙的安全,只要有机会到服务器面前,就会找到攻击服务器的方法。
第十招 在系统中,有很多人没有设置密码的习惯。审计使用空密码的用户,强制使用安全密码。
使用下列语句,可以得到现有用户中没有使用密码的账号:
Select name,Password from syslogins where password is null
执行结果如图2所示。可以看到目前在业务系统中有四个人的密码是空,其中包括SA超级用户的密码。
第十一招 不允许使用者交互式登录到SQL Server之上。这个规则适用任何服务器。一旦一个使用者能够交互式进入一个服务器之内,就有可能利用管理员的存取特权得到管理员权限。
解决方法:关闭远程终端服务和Windows 2003的Web管理功能。
第十二招 启用混合模式安全性认证,在默认状态只是执行失败的审核,建议使用“SQL Server和Windows”身份验证,审核级别使用“全部”。“无”表示不执行审核;“成功”表示只审核成功的登录尝试;“失败”表示只审核失败的登录尝试;“全部”表示审核成功的和失败的登录尝试。
配置方法:展开控制台根目录,选择“(Local)Windows NT”,鼠标右键,选择“属性”,在配置窗口中选择“安全性”选项卡,审核级别选择“全部”,记录所有的身份验证状况。
第十三招 定期检测SQL日志文件,检索其中成功登录或者登录失败的信息,从而找到任何非法入侵者所作多次数据库登录尝试。
配置方法:展开控制台根目录,选择“管理”,展开,选择“SQL Server日志”,在右侧窗口列表中打开您选择的日志文件,上面有详细的记录状况。如图3所示。
第十四招 制定严格的数据库备份策略,在数据库管理中,这是最重要的工作。同时在允许的条件下模拟可能出现的灾难情况,模拟出测试环境,进行数据保护有效性防范,减少故障发生的机率,系统灾难恢复时间最小化。
第十五招 如果条件许可,数据库文件和日志文件分开存储,分别放在不同的物理存储设备上。一旦发生灾难性故障,如硬件损坏,数据文件和日志存放在一起,没有任何手段可以恢复数据。如果做了数据备份,同时日志文件保存在其它位置,并且日志文件没有损坏的情况下,就有可能恢复数据。数据安全级别定义:高。
配置方法:双击数据库文件名,打开数据库属性,点击“数据文件”选项卡,设置数据文件存放的位置。如图4所示。点击“事务日志”选项卡,设置日至文件存放的位置。
第十六招 选择数据库故障还原模型,建议选择“完全”方式。
SQL Server2000支持3种方式的数据库故障还原模型:简单、完全、大容量日志记录。其优缺点如表1所示。
配置方法:选中数据库名称,鼠标右键选择属性,点击“选项”选项卡,在故障还原子段下有一个‘模型’栏目,选择需要设置的模型方式即可。如图5所示。
第十七招 关闭服务器行为下的允许对“系统目录直接进行修改”功能。如果开启此功能,则在数据库架构内可以使用扩展存储过程对系统目录下的文件或者其他信息进行修改,或者在数据库架构内上传具有恶意功能的代码。这是大家都不愿意看到的。安全风险级别:高。
配置方法:鼠标右键数据库服务器,选择“服务器设置”,在“服务器行为”字段下,关闭“系统目录直接进行修改”。如图6所示。
以上为您介绍了SQL Server 2000数据库安全配置的十七种方法,这些方法只要使用得当,做好安全管理工作就不是一个难题。
表1 三种还原模型对比表
简单方式还原模型 产生日志文件的容量小,方便检索。 如果一旦发生数据损坏的情况, 常常不能恢复数据。
大容量日志记录故障还原模型 所有的对数据库的操作将全部保留,会日志文件太大。产生一个巨大的日志文件。如果数据文 件发生损坏,可以完全恢复数据库的数据。
完全方式的还原模型对数据库的数据操作将全部保留,会产对数据库的一些操作记录的不 生一个适中的日志文件,也可以恢复数据库数据够详细。