当前位置导航:炫浪网>>网络学院>>编程开发>>MsSQL教程

保护SQL服务器的安全-安全安装


  由于很多原因,需要作出安全决定的人常常没有明白数据的真正价值,所以经常无法对数据进行足够的保护。让需要你数据的人能够在需要的时候访问到它,并确保其有效性,可能是数据库管理员最重要的职责。但是,保持数据能够被访问并不意味着要让它对所有的人都开放;因此,你需要仔细保护数据的安全,然后只对需要它的人开放。
  
  安全措施
  普通的维护和数据库的更改应该让位于安全措施,这一过程包括如下步骤:
  
  ● 为缺省的系统管理员(SA)帐号分配一个复杂的密码。然后创建你唯一命名的帐号来处理管理工作,并给该帐号分配sysadmin角色。要确保新的帐号也具有复杂的密码。然后你就可以从sysadmin角色里把SA帐号删掉。
  ● 为每个用户设置单独的密码。但是更好的方法是使用Windows集成的安全(机制),并让Windows来强制执行严格的密码规则。
  ● 要确定哪些用户需要查看什么数据,然后分配适当的许可。不要仅仅为图省事而给予用户过多的权限。例如,你的数据输入操作员就的确不需要查看其他人的工资。
  ● 确定哪些用户需要更改什么数据,然后再分配适当的许可。帐号管理人员应该可以看到所有的客户信息,但是你可能希望限制谁才有权更改这些信息。具体的说,掌握特定帐号的帐号管理人员可能是唯一一个被赋予权限更改客户数据的人。
  
  通过本系列的文章,你会了解到更多关于这些措施的内容,但是你应该从一开始就考虑安全的问题。否则,你数据库的任何用户都可能窃取或者删除你最敏感的数据。
  
  可能是什么出错?
  众所周知,SQL服务器在刚安装好的的时候并不安全。你必须花一些心思和精力来充分和成功地保证你服务器的安全。甚至在开始安装服务器之前,你就需要考虑两个非常重要的问题:
  
  ● 保护管理员帐号和密码的安全
  ● 保护你的系统不受Slammer蠕虫病毒的侵害
  ● 保护刚刚安装好的服务器
  
  利用SA帐号,SQL服务器2000的确具有缺省的安全(措施)。在安装过程中,SQL服务器会自动地创建一个管理员用户,并为其指定SA这个用户名和一个空白的密码。有些管理员会把这个SA的密码留成空白,或者设置为大家都知道的一个常见密码,这就使得其整个系统能够被轻易攻破。如果你犯了这个错误,那么任何人都可以登录进你的数据库,并做他们想做的事情。具有管理员许可的任何人都可以做他们想做的任何事——不仅仅是数据库,还有整台计算机。这肯定不是一件好事。你希望限制每个用户,只让他们访问他们需要的东西——不多也不少。
  
  在日常的管理工作中不要使用SA帐号。用一个真正安全的密码来收藏好这个帐号。然后,为管理工作专门创建另外一个帐号(具体是SQL服务器帐号还是Windows帐号,这要根据你的验证模式)。你需要避免很容易就会被猜出来的帐号名,或者控制整台服务器的帐号的密码,因为如果有人使用这个帐号成功地登录进来,那么游戏就此结束。
  
  一次令人警醒的事件——Slammer蠕虫
   2003年1月,一个感染性极强的恶意代码,Slammer蠕虫将攻击目标瞄准了SQL服务器的安装过程。通过利用SQL服务器代码里的漏洞,它能够在安装SQL服务器的时候“绑架”计算机,并将自己的多个副本安插进其他被攻破的计算机里。利用某些帐号,这个蠕虫在被释放出来的15分钟之内就渗透进了Internet。微软花了大量的精力来发布补丁,但是Slammer的影响现在还时有发生。有些媒体甚至还宣称,它破坏了SQL服务器工作组的工作,结果导致SQL服务器下一版本的beta版发布被推迟。
  
  为什么在这一事件爆发数月之后你还需要关注这个问题?因为现在在网上每天还有受到感染的机器在向外发送Slammer的副本。如果把没有打补丁的SQL服务器连接到Internet上,你就可能成为下一个受害者。这次事件告诉我们:在插上连接到Internet的电缆之前,你需要保护好自己服务器的安全,并安装最新的服务包和补丁。
  
  服务包的重要性
  服务包可以免费下载,所以你不会因为买不起而不去安装。Slammer蠕虫不会破坏数据,但是它会导致你服务的严重崩溃,其后果和数据被破坏一样严重。保护措施非常简单:下载服务包3或者服务包3a。
  
  这个蠕虫如何工作的技术细节在这里并不重要。重要的是,Slammer蠕虫所攻击的漏洞,已经在6个月之前由微软发布补丁进行了修补,但是还造成这么大的损失。受到这个蠕虫攻击的商业机构两次受害:一次是由没有保护好系统的管理员造成的,另一次是由蠕虫造成的。
  
  你也应该要记住:没有什么能够保证SQL服务器服务包3能够修补所有的漏洞。你应该定期访问微软的安全公告牌页面,以确保你能够得知未来服务包和补丁的发布。
  
  选择验证模式
  在安装SQL服务器过程中你要首先作出的一个决定是选择使用哪种安全模式。安全模式有两种:
  
  ● Windows验证模式(也叫做集成模式)
  ● 混合模式
  
  在Windows验证模式下,用户通过已有的Windows用户帐号连接到SQL服务器上。当用户使用合法的用户名和密码连接到服务器的时候,SQL服务器会验证用户的Windows登录信息。这样,用户只需要一次就能够同时登录进Windows和SQL服务器。帐号信息由Windows严格保存。
  
  混合模式是Windows验证和SQL服务器验证的结合。在混合验证模式下,有的用户可以只需要一次注册,就可以继续使用Windows的帐号来访问SQL服务器。而其他的人可以使用SQL服务器的用户帐号,这一帐号是同Windows帐号完全分离的。每个SQL服务器的帐号都会保存自己的用户名和密码。即使这两个登录的值完全相同,用户也必须登录两次——一次用于进入Windows,另一次用于进入SQL服务器。
  
  Windows验证模式要优于混合模式,其原因如下:
  
  ● 它提供了比SQL服务器验证更多的特性。
  ● 大多数管理员都认为Windows验证是两种模式中更容易实现和使用的。
  ● 在Windows验证模式下,没有必要在连接字符串里保存密码——又少了一样要保护的东西。
  ● Windows验证意味着你只需要在一个地方管理密码,而不是两个地方。
  
  不幸的是,不是所有的人都可以使用Windows验证。SQL服务器7.0(或者更早的版本)要求使用混合模式。Windows验证只能在SQL服务器2000上使用。在某些情况下(例如,当你正在使用域以外的Web服务器,从域以内的SQL服务器上获取数据的时候),Windows验证无法工作,因为信任书无法通过域的边界。在这些情况下,你必须使用混合模式和SQL服务器登录。
  
  其他关于安装的提示
  在安装SQL服务器的时候,有一些东西需要你考虑:
  
  ● 要将TCP/IP用作SQL服务器的网络库。这是微软所推荐的库,所顺理成章地成为经过测试的最佳库。如果服务器会被放在公众的Internet上,那么就要使用一个非标准的端口,这就可以让坏小子们更难找到它。
  ● 要使用一个低权限的帐号来运行SQL服务器,而不是用管理员帐号。这会在安全系统被攻破的时候限制其造成的损失。
  ● 不要允许未受安全保护的来宾帐号访问任何包含有保护数据的数据库。
  ● 将服务器从物理上锁在服务器房间或者柜子里,以保证其安全。要记住,大多数入侵都来自内部。
  
  结论
  让安全从一开始就成为你工作重点的头一个。无论是保护你的数据不因为能力不足而遭受损失,还是要防止有意破坏而受到的损失,你都要花时间学习安全模式,然后小心地应用它。只需要一次安全恶梦,你就会成为安全的相信者。所以正视安全,睡个好觉。
相关内容
赞助商链接