关于SQL Server 2000的安全配置

2008-04-02 10:58:33来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

SQL Server 2000的安全配置在进行SQL Server 2000数据库的安全配置之前,首先您必须对操作系统进行安全配置,确保您的操作系统处于安全状态。然后对您要使用的操作数据库软件(程式)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的WEB应用常出现的安全隐患,对于脚本主要是个过滤问题,需要过滤一些类似“,;@/”等字符,防止破坏者构造恶意的SQL语句。接着,安装SQL Server2000后请打上补丁sp3。
  1、使用安全的密码策略
  我们把密码策略摆在任何安全配置的第一步,请注意,很多数据库帐号的密码过于简单,这跟系统密码过于简单是个道理。对于sa更应该注意,同时不要让sa帐号的密码写于应用程式或脚本中。健壮的密码是安全的第一步!SQL Server2000安装的时候,假如是使用混合模式,那么就需要输入sa的密码,除非您确认必须使用空密码。这比以前的版本有所改进。同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码需要的帐号。
  比如使用下面的SQL语句:
Use master
Select name,Password from syslogins where password is null

2、使用安全的帐号策略
  由于SQL Server不能更改sa用户名称,也不能删除这个终极用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个很强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其他方法登录到 SQL Server 实例(例如,当其他系统管理员不可用或忘记了密码)时才使用 sa。建议数据库管理员新建立个拥有和sa相同权限的终极用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。
  SQL Server的认证模式有Windows身份认证和混合身份认证两种。假如数据库管理员不希望操作系统管理员来通过操作系统登陆来接触数据库的话,能够在帐号管理中把系统帐号“BUILTIN\Administrators”删除。但是这样做的结果是一旦sa帐号忘记密码的话,就没有办法来恢复了。很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配帐号,并赋予仅仅能够满足应用需要和需要的权限。比如,只要查询功能的,那么就使用一个简单的public帐号能够select就能够了。
  3、加强数据库日志的记录
  审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就周详记录了任何帐号的登录事件。请定期查看SQL Server日志检查是否有可疑的登录事件发生,或使用DOS命令。
findstr /C:"登录" d:\Microsoft SQL Server\MSSQL\LOG\*.*

  4、管理扩展存储过程
  对存储过程进行大手术,并且对帐号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而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_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop

  去掉无需的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue
Xp_regenumvalues Xp_regread Xp_regremovemultistring
Xp_regwrite

  更有一些其他的扩展存储过程,您也最好检查检查。在处理存储过程的时候,请确认一下,避免造成对数据库或应用程式的伤害。
  5、使用协议加密
  SQL Server 2000使用的Tabular Data Stream协议来进行网络数据交换,假如不加密的话,任何的网络传输都是明文的,包括密码、数据库内容等等,这是个很大的安全威胁。能被人在网络中截获到他们需要的东西,包括数据库帐号和密码。所以,在条件容许情况下,最好使用SSL来加密协议,当然,您需要一个证书来支持。
  6、不要让人随便探测到您的TCP/IP端口
  默认情况下,SQL Server使用1433端口监听,很多人都说SQL Server配置的时候要把这个端口改变,这样别人就不能很容易地知道使用的什么端口了。可惜,通过微软未公开的1434端口的UDP探测能够很容易知道SQL Server使用的什么TCP/IP端口了。但是微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例。假如隐藏了 SQL Server 实例,则将禁止对试图枚举网络上现有的 SQL Server 实例的客户端所发出的广播作出响应。这样,别人就不能用1434来探测您的TCP/IP端口了(除非用Port Scan)。
  7、修改TCP/IP使用的端口
  请在上一步配置的基础上,更改原默认的1433端口。在实例属性中选择网络配置中的TCP/IP协议的属性,将TCP/IP使用的默认端口变为其他端口.
  8、拒绝来自1434端口的探测
  由于1434端口探测没有限制,能够被别人探测到一些数据库信息,而且还可能遭到DOS攻击让数据库服务器的CPU负荷增大,所以对Windows 2000操作系统来说,在IPSec过滤拒绝掉1434端口的UDP通讯,能够尽可能地隐藏您的SQL Server。
  9、对网络连接进行IP限制
  SQL Server 2000数据库系统本身没有提供网络连接的安全解决办法,但是Windows 2000提供了这样的安全机制。使用操作系统自己的IPSec能够实现IP数据包的安全性。请对IP连接进行限制,只确保自己的IP能够访问,也拒绝其他IP进行的端口连接,把来自网络上的安全威胁进行有效的控制。关于IPSec的使用请参看:
http://www.microsoft.com/china/technet/security/ipsecloc.asp ;
  上面主要介绍的一些SQL Server的安全配置,经过以上的配置,能够让SQL Server本身具备足够的安全防范能力。当然,更主要的还是要加强内部的安全控制和管理员的安全培训,而且安全性问题是个长期的解决过程,还需要以后进行更多的安全维护。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: SQL邮件自动应答

下一篇: 备份服务器端SQL SERVER数据库至本地目录