关于 SQL Server 2000安全配置的建议

2011-04-13 04:52:56杨金劳付利军
山西广播电视大学学报 2011年2期
关键词:身份验证端口密码

□杨金劳,付利军

关于 SQL Server 2000安全配置的建议

□杨金劳,付利军

(运城农业职业技术学院,山西 运城 044000)

在研究关于SQL Server 2000数据库的安全配置问题的基础上,提出了一系列的措施和建议,有助于数据库管理员和开发人员进行有效的安全配置。

SQL Server 2000;数据库;安全配置

微软的SQL Server 2000是一种广泛使用的数据库管理系统。大多数企业、组织以及政府部门的电子数据都保存在各种数据库中,这些数据可能包括许多个人信息、业务信息、客户资料、生产数据、管理数据、企业的财务数据等等,有些数据甚至是敏感的金融数据,企业的商业机密,或政府部门的绝密文件等。但在日常使用中往往会忽视数据的安全问题,数据库系统中存在的安全漏洞和不当的配置通常会造成严重的后果,而且都难以发现。因此,如何有效地保证数据库系统的安全,实现数据的保密性、完整性和有效性,就成为众多数据库管理员和用户所面临的主要问题。下面笔者对SQL Server 2000安全配置提出几点建议。

安装最新的服务包。安装所有最新补丁程序和相关的升级程序,这样可以修复SQL Server 2000系统本身的安全漏洞。最有效的一个方法就是升级到SQL Server 2000 Service Pack 3a(SP3a)。另外,还应该安装所有已发布的安全更新。

使用强健安全的密码策略。数据库帐号的密码绝对不可以过于简单,应使用强密码,强密码使未经授权的用户更难于破解密码,入侵系统。强密码至少有7个字符长,包括字母、符号和数字,不能是词典单词、人名、命令名称或系统用户名。对于sa更应该拥有一个强健的密码,即使在配置要求Windows身份验证的服务器上也该如此。这将保证在以后服务器被重新配置为混合模式身份验证时,不会出现空白或脆弱的sa。同时不要让sa帐号的密码写于应用程序或者脚本中。另外,为了安全需要,系统管理员应该定期修改密码,并定期检查登录帐号,强制使用空密码的用户指派强密码,及时删除过期用户。

注意sa用户。系统管理员(sa)是为向后兼容而提供的特殊登录。默认情况下,它指派给固定服务器角色sysadmin,并不能进行更改。由于sa是内置的固定管理员登录,很容易被猜测和攻击,所以不应使用它,而应该建立专门的系统管理员来管理数据库,当其他系统管理员不可用或忘记了密码时才使用sa。安装期间,如果选择使用混合模式身份验证,应立即指定密码以防止使用sa登录未授权访问SQL Server实例。如果安装期间选择Windows身份验证,则安装之后立即为sa登录指定密码,确保万一以后将模式更改为混合模式身份验证时,sa登录具有密码。

注意guest用户。所有没有自身数据库权限的登录都获取授予guest用户的数据库权限。所有的系统数据库除model以外都有guest用户。guest用户的存在意味着所有登录到SQL Server服务器的用户都可以访问数据库,即使他还没有成为本数据库的用户。因此应该避免使用guest用户。如果有必要使用guest用户,应该给予最小的权限;如果没有必要使用它,应该删除所有用户数据库中的guest用户。

在防火墙上禁用SQL Server端口。SQL Server的默认安装将监视TCP端口1433以及UDP端口1434。配置你的防火墙来过滤掉到达这些端口的数据包。而且,还应该在防火墙上阻止与指定实例相关联的其他端口。由于1434端口探测没有限制,能够被别人探测到一些数据库信息,而且还可能遭到DOS攻击让数据库服务器的CPU负荷增大,所以应该使用系统自带的 IPSec过滤拒绝掉1434端口的UDP通信,可以尽可能地隐藏你的SQL Server。

使用Windows NT认证模式。一般情况下,推荐使用Windows NT认证模式连接到SQL Server 2000服务器。它通过限制对Microsoft Windows用户和域用户帐户的连接,保护SQL Server免受大部分 Internet的工具的侵害。而且,你的服务器也将从Windows NT安全增强机制中获益,例如安全验证和密码加密、审核、密码过期、最短密码长度,以及在多次登录请求无效后锁定账户,这样更利于SQL Server 2000服务器的安全控制。Windows NT用户在登录时SQL Server不需再次验证口令,登录速度更快。但仍有一些情况需要使用SQL Server账号登录,比如登录安排在非Windows NT环境(比如Windows 98)的 SQL Server,另外,Internet用户登录SQL Server时不可能有Windows NT账号,只能用SQL Server账号登录。

管理扩展存储过程。SQL Server经常利用扩展存储过程完成一些数据库控制与配置处理,而这些扩展存储过程受用户的权限控制,如果非法访问者获取了某个具有较高权限的用户密码,那么他也可以利用这些扩展存储过程对系统进行破坏,因此可以适当地删除这些不必要的存储过程。如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:

use master

sp_dropextendedproc 'xp_cmdshell'

xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你确实需要这个存储过程,用下面的语句把它恢复过来:

sp_addextendedproc 'xp_cmdshell','xpsql70.dll'

如果你不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:

Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAG-etProperty

Sp_OAMethod Sp_OASetProperty Sp_OAStop

去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:

Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues

Xp_regread Xp_regremovemultistring Xp_regwrite

还有一些其他的扩展存储过程,你也最好检查检查。

在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。

隐藏服务器及修改TCP端口。如果使用TCP/IP连接,建议隐藏服务器,以禁止对试图枚举网络上现有的SQL Server实例的客户端所发出的广播做出响应,这样,别人就不能用1434来探测你的TCP/IP端口了。在实例属性中选择网络配置中的TCP/IP协议的属性,修改默认的TCP端口为自定义的TCP端口,减少被攻击的可能。

注意public角色。public角色是一个特殊的数据库角色,每个数据库用户都属于public角色。如果没有给用户专门授予对某个对象的权限,他们就使用指派给public角色的权限。public角色捕获数据库中用户的所有默认权限。无法将用户、组或角色指派给它,因为默认情况下它们即属于该角色。Public角色包含在每个数据库中,包括master、msdb、tempdb、model和所有用户数据库。无法删除 Public角色,因此要防止未授权的数据访问,应授予public角色最小权限。使用安全的文件系统。SQL Server的数据库文件可以存放在FAT或者NTFS文件系统上,但不能放在压缩文件系统中,建议把数据库文件放在NTFS分区。因为相对FAT文件系统来说,NTFS具有稳定性和可修复性的特征,并且允许进行文件和目录ACLs以及文件加密EFS的选择。这样可以使用NTFS的文件加密功能对数据库文件进行加密,同时也可以使用NTFS分区的权限管理功能控制对数据文件的访问权限。

管理好备份文件。数据库系统必须有防止数据丢失或者损坏的措施,以保证故障发生后,可以将数据库系统中的数据恢复到损坏以前的正确状态,使损失降到最小,因此备份数据库是对数据库安全性的保障措施。定期备份所有数据,并将副本保存在安全的站点外地点。管理好备份文件,以防止当服务器或者数据库出现异常时,应用备份的数据和数据库还原方法来恢复丢失的数据。另外,应该对备份集和媒体集设置密码,设置密码需要通过BACKUP与RESTORE实现,企业管理器没有提供相应的接口。

通过以上各方面的综合配置,可以让SQL Server 2000本身具备足够的安全防范能力,也能够构建一个强健的数据库系统。当然,SQL Server 2000数据库服务器的安全技术还不止这些,相信随着计算机信息安全技术的不断提高,数据库的安全将越来越有保障。

[1]李代平.中文SQL Server 2000数据库应用开发[M].北京:冶金工业出版社,2002.

[2]刘卫宏.SQL Server 2000实用教程[M].北京:科学出版社,2003.

[3]赵松涛,吴维元.SQL Server 2000系统管理实录[M].北京:电子工业出版社,2006.

[4]邹建.中文版SQL Server 2000开发与管理应用实例[M].北京:人民邮电出版社,2005.

[5]余金山.SQL Server 2000/2005数据库开发实例入门与提高[M].北京:电子工业出版社,2005.

Some Suggestions on SQL Server 2000 Security Configuration

Yang Jinlao,Fu Lijun
(Yuncheng Vocational and Technical College of Agriculture,Yuncheng,Shanxi,044000)

This article focuses on the security configuration issues of SQL Server 2000 database and puts forward a series of measures and suggestions,which can help database administrators and developers to carry out effective security configuration.

SQL Server 2000;database;security configuration

G710

B

1008—8350(2011)02—0050—02

本文责编 安春娥

2010—10—18

杨金劳(1982—),女,山西运城人,运城农业职业技术学院;付利军(1979—),男,山西运城人,运城农业职业技术学院。

猜你喜欢
身份验证端口密码
密码里的爱
保健医苑(2022年4期)2022-05-05 06:11:30
一种端口故障的解决方案
科学家(2021年24期)2021-04-25 13:25:34
密码疲劳
英语文摘(2020年3期)2020-08-13 07:27:02
端口阻塞与优先级
HID Global收购Arjo Systems扩大政府身份验证业务
密码藏在何处
夺命密码
初识电脑端口
电脑迷(2015年6期)2015-05-30 08:52:42
生成树协议实例探讨
职业·中旬(2015年4期)2015-05-30 05:54:49
更安全的双重密码保护
CHIP新电脑(2015年3期)2015-04-02 17:55:46