安装SQL Server的几点安全注意事项
安全对于数据库来说很重要,就好像质量对于企业来说是生命线一样。安全也是数据库的生命线。SQL Server数据库中就有很多保障数据库安全的工具。不过笔者认为光采用这些工具还不行。数据库管理员必须在数据库安装的时候就要考虑安全问题。为此,笔者今天就跟大家谈谈在安装SQL Server数据库时的三点安全注意事项。
一、 选择合适的文件系统。
在微软操作系统下可以使用的文件系统有NTFS、FAT32等等。而且SQL Server数据库还支持原始分区,即可以在没有文件系统的情况下直接把数据存储在硬盘上,以提高数据库的运行效率。如果从安全性的角度考虑,不同的文件系统其安全程度都是不一样的。
NTFS文件系统是微软最新推出的一个文件系统,其相对来说是比较安全的文件系统,也是SQL Server数据库安装时推荐使用的文件系统。因为它与FAT32文件系统比起来,有比较大的优势。
如与FAT文件系统比NTFS文件系统稳定性更高,在遇到故障时更容易自动恢复。因为在NTFS文件系统中有个记录文件其名字为$LogFile。这是一个相当于日志文件的记录。在这个文件中包含了一系列处理步骤,用于实现NTFS文件系统的可恢复特性。文件的尺寸与磁盘分区尺寸有关,最多可能达到4MB之多。当系统出现故障后(如意外断电或者以外重启), NTFS文件系统在下次启动时都会根据日志对自身内容及结构进行检查,以保持与上次关闭后的一致性。从而起提高数据库与操作系统的稳定性。
如比FAT文件系统具有更高地安全型,加密程度更高。NTFS是利用主文件表中的记录信息来实现诸多安全方面的特性。这些特性都是基于文件系统的,并与操作系统紧密结合,因此具备唯一相关性。比如,数据库管理员在服务器A的NTFS分区上对某个分区限制了访问权限。那么即使管理员把硬盘拆下来装到电脑B上,那么对于电脑B的操作者来说这种限制依然存在。同理,管理员在电脑A上重装系统之后,原先对该目录设置的访问权限也依然存在。因为这些信息都被记录在NTFS文件系统的主文件表中,要访问受限目录,就必须通过文件系统,而文件系统又会通过主文件表得到受访目录的相关信息,所以只要文件系统不变,就永远不会出现被绕过的现象,这就是NTFS文件系统的环境一致性。这就是NTFS文件系统下的EFS加密技术。另外还可以提供其他的一些安全手段。如管理员经常用到的就是文件和目录访问控制列表,可以限制非数据库用户访问特定的目录与分区,从而实现数据库中数据的安全性。通常情况下,数据库管理员若能够合理应用NTFS文件系统的访问控制列表与EFS文件加密技术的话,那么从数据库服务器这个角度讲,安全性是没有问题的。但是,数据在网络上传输与客户端那边的安全性,仍然需要通过其他安全手段来实现。
所以说,NTFS文件系统相比FAT文件系统来说,具有更高的安全性。在SQL Server数据库安装的时候,最好能够把数据库部署在NTFS文件上。至少要把数据文件保存在这个文件系统中。以利于管理员根据企业的安全需要可以灵活选择不同的安全措施。
二、 考虑使用磁盘阵列。
硬盘故障也是威胁数据库安全的一大黑手。由于数据库数据存放在硬盘中,若硬盘损坏的话,那么数据库中的数据就将受到损坏。虽然通过数据库备份与还原可以把这个损害降低到最低,但是这数据库备份与恢复需要一定的时间。而且如果数据库备份策略设计的不好的话,还不能够把数据库中的数据恢复到发生故障那一个点。所以利用数据库备份策略来防止硬盘损坏导致的损失虽然有不错的效果,但是不是最好的措施。如现在用户的一块硬盘突然出现了坏扇区而导致数据无法正常读取。难道只能够换一块硬盘然后利用备份数据进行恢复吗?笔者不是这么处理的。#p#分页标题#e#
笔者在实际工作中,则是通过磁盘阵列这种安全措施来防止硬盘故障带来的安全隐患。如笔者在给客户部署数据库服务器时,就此采用了RAID-5磁盘阵列技术。RAID5磁盘阵列技术在不停机及容错性方面表现都很好。如可以在数据库服务器中部署三块或者更多的硬盘。当某一块硬盘出现故障时,系统会把共用同一校验值分段的所有数据及校验值读出来,通过这些校验值可以把故障硬盘的数据推算出来。等管理员换上新的磁盘,操作系统会计算整个磁盘阵列的数据以恢复故障硬盘的数据。简单的说,如果服务器的硬盘出现了故障,而且数据库服务器刚好采用了磁盘阵列技术的话,那么数据库管理员只需要简单的把坏硬盘换下,然后采用一块新的硬盘,问题就迎刃而解了。而且这个数据会恢复到故障发生的那个点。而需要通过负责的还原操作来达到这个目的。若要通过还原策略来恢复故障硬盘中的数据的话,则需要分别还原数据库完全备份、差异备份、事务日志,数据才能够恢复到故障的那个点。所以处理起来相当的麻烦。而采用磁盘阵列的话,只需要换一个块硬盘即可,就方便多了。
另外磁盘阵列还可以带来其他的好处。如采用了磁盘阵列之后,数据库在保存数据的时候就会把数据分割成一小块一小块的内容,然后同时保存到多块硬盘中。在读取数据的时候,也会同时从多块硬盘中输出数据。可见,磁盘阵列可以减少硬盘输入输出瓶颈的负面影响,提高数据库服务器的运行效率。
所以无论是从安全性还是从数据库服务器性能考虑,笔者都建议企业在部署SQL Servr服务器的时候,最好采用磁盘阵列。
一、 利用防火墙来提高数据库的访问控制。
虽然企业的服务器往往是部署在企业内部,外网用户仍然无法直接通过互联网来访问数据库。但是,数据库管理员仍然要跟企业的网络管理员商量,为提高数据库的安全性而在企业网络中实现防火墙安全策略。防火墙具体如何部署,那笔者不是专家。如果结合SQL Server数据库来谈防火墙的策略,那么笔者还是需要说几句,提议下这些建议。
一是利用防火墙来保护外网对SQL Server可能发生的攻击。如可以在数据库服务器与互联网之间部署一个防火墙。为了确保数据库的安全,最好不要为了管理上的方便而把防火墙关闭掉。特别是企业可能通过VPN或者 NAT的方式允许外部用户访问内部的数据库服务器,或者干脆给数据库服务器配置了一个公网的IP地址,这相当于把数据库服务器直接放置在互联网上。在这种情况下,利用防火墙来隔离互联网与数据库服务器更加显得重要。虽然会增加一定的管理工作量,但是与数据库安全来说,这点工作量不值一提。 二是利用Windows域环境来提高数据库的安全性。如果企业已经实现了域环境,那么最好就是把数据库服务器也加入到这个域中。然后将内部防火墙配置为允许使用Windows身份验证。如此的话,就把数据库的安全机制跟域的安全机制结合。这对于保障数据库的安全是非常有用的。如在对付用户非法访问、病毒木马等的侵袭等等安全问题上,都有很明显的效果。
三是要注意分布式事务处理。如果基于SQL Server数据库的应用软件使用分布式事务处理,那么此时可能必须要将防火墙配置为允许微软分布式事务处理协调器在不同的分布式实例之间进行通信。有时候还需要将防火墙配置为允许在分布式实例和数据库资源管理器之间进行通信。在这方面数据库管理员要跟企业网路管理员进行沟通。因为网络管理员如果以前没有这方面的配置经验的话,那么往往不知道该如何配置。如果配置不当的话,那么就会给应用程序正常访问数据库带来障碍。笔者的建议是,在部署数据库应用的时候,可以先把防火墙关闭掉。然后等到部署完成之后,在启用防火墙。如此的话,就可以知道是否是因为防火墙的问题才导致数据库无法正常访问。此时管理员在解决数据库访问故障时也就有了解决问题的方向。#p#分页标题#e#
另外,如果子网划分等方式也可以起到跟防火墙类似的作用。如果企业确实资金有限无法购买防火墙时,则可以通过子网划分或者虚拟局域网的手段来达到跟防火墙类似的效果。