执行一个安全的SQL Server安装
2007-05-16 09:34:05 来源:WEB开发网收集和分发数据是网络管理的职责之一,而且必须确保这些数据的准确性和安全性。不管它们是什么操作系统,数据库服务器需要特殊的管理以保证操作上的安全性。良好的安全性开始于安装。现在让我们看一看如何才能在开始的时候就获得SQL Server的安全性。
安装
在开始安装之前,先定位到终端路由器或者防火墙,将UDP和TCP端口1433和1434指明为SQL Server的IP地址,这将有助于在安装的时候防止SQL injection弱点。
请不要在一个域控制器(domain controller)上安装SQL Server,一个程序的弱点可以导致危及整个域。在安装程序的转移数据之前,你最好在一个具有完全补丁修补之后的操作系统上安装SQL Server。
SQL Server服务应该运行于独立的当地帐号之下。这样,即使如果有人破坏程序,其它的服务器也可以不受影响。
如果服务器想要为一个基于Windows的网络服务,与服务器的所有连接都需要Windows认证。这将使得用户不再有必要记住其它连接的密码,从而减轻了用户的负担。
服务帐号
在通常情况下,服务帐号十分注意分配给它们的权限。SQL Server使用两种帐号:SQL Server Engine和SQL Server Agent。这两种帐号都作为一个具有常规帐号权限的域用户而运行。
如果你使用SQL Server认证,而不是使用Windows认证,或者如果你的服务器运行的是ActiveX脚本或CmdExec作业(比如,操作系统命令或者.bat,.cmd,.com,或.exe的可执行程序),SQL Server Agent帐号将需要当地Windows管理员权限。
注意:如果你需要改变与SQL Server服务有关的帐号,可以使用SQL Server企业管理者(SQL Server Enterprise Manager)。企业管理者将对SQL Server使用的文件和注册表键设置合适的权限。不要使用控制面板上MMC的Services applet来更改这些帐号。
安装之后通过运行微软Killpwd.exe程序,可以清除在安装过程中保存在不同安装文件中的纯文本sysadmin密码。
当从新服务器中清除安装文件之后,运行Microsoft Baseline Security Analyzer (MBSA)。这一工具能够扫描和测试安装中产生的问题,这些问题包括:
过多的sysadmin成员都想作为服务器角色。
分配建立CmdExec作业的权限。
空白的或者琐屑的密码。
脆弱的认证方式。
分配给管理者组的过多的权限。
运行于域控制器的系统的SQL Server。
每一组的不合适的配置。
SQL Server服务帐号的不合适的配置。
丢失的服务补丁和安全更新。
最后,请记住检查失败连接的原因。这是安装中最容易忽略的选项。你可以通过SQL Server企业管理者来实现失败连接的检查。
请遵循以下的步骤:
1. 右击服务器,选择属性(Properties)。
2. 在安全(Security)标签,在Audit Level之下选择Failure。
3. 停止和重新启动服务器,以获得检查的开始。
最后注意几点这也只是执行一个安全的SQL Server安装的开始。如果你的服务器将从一个公共的Web服务器中集中数据,你应该对设置到Web服务器IP地址的SQL端口进行限制。这些都对数据库服务器非常有好处,但它们都以一个安全的安装为开始。
本文作者: Mike Mullins作为数据库管理者和助理网络管理者的身份参加了美国特勤局(Secret Service),他是一个美国国防部国防资讯系统局(Defense Information Systems Agency)的网络安全管理者。赞助商链接