尹 慧
随着人类步入信息时代,面对浩如烟海的各类信息,如何快速、准确、安全地获取学校相关信息,妥善管理保存学校有价值信息,对档案工作提出新的要求。档案数据库系统在实现档案网络化管理和数字化管理的过程中,扮演着数据中心的核心作用。档案信息的录入、修改、查询等工作都是对存储于数据库里的数据信息进行的处理。因此,如何将档案数据库打造成铜墙铁壁似的安全系统,就成了所有档案系统网络工作者必须要面对和解决的问题。这里以SQL Server为例,对数据库的安全配置以及一些相关的使用问题做一简介。
1 SQL Server 2000数据库安全配置前期工作
在进行SQL Server 2000数据库的安全配置之前,必须对操作系统(如Windows XP)进行必要的安全配置,然后将安装的SQL Server 2000进行升级,打上SQL Server最新的安全补丁。
2 使用安全的密码策略
对于SQL Server 2000来说,一个复杂安全的密码是数据库系统安全的第一步。因此,数据库账号的密码不能过于简单,同时不要让数据库账号的密码写于应用程序或者脚本中,健壮的密码是安全的第一步。
在对SQL Server 2000进行安装的时候,如果是使用混合模式,那么最好输入SA账号的密码,而且是比较复杂的。在以后的维护中,要定期修改密码。对于数据库管理员来说,应该定期查看是否有不符合密码要求的账号出现。比如使用下面的SQL语句:
Use master
Select name,Password from syslogins where password is null
修改SA账号密码,按步骤操作:1)展开服务器组,然后展开服务器;2)展开安全性,然后点击登录;3)在细节窗格中,右键点击SA,然后点击属性;4)在密码方框中输入新的密码。
3 使用安全的账号策略
SQL Server允许用SA账号登录的用户(有时也包括其他用户)来访问操作系统特性。这些操作系统调用是由拥有服务器进程的账户的安全性来创建的。如果服务器被攻破,那么这些操作系统调用可能被利用来向其他资源进行攻击。因此,为SQL Server服务授予必要的权限是十分重要的。由于SQL Server系统不能更改SA用户名称,也不能删除这个超级用户,所以必须对这个账号进行最强的保护。当然,包括使用一个非常强壮的密码,最好不要在数据库的应用中使用SA账号。对于数据库管理员来说,应该新建立一个拥有与SA账号一样权限的超级用户来对数据库进行管理。安全的账号策略还包括不要让管理员权限的账号泛滥。
很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配账号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public账号能够select就可以了。
4 对扩展存储过程进行有效管理
一般来说,在大多数情况下,数据库信息应用不需要应用到较多的存储过程,SQL Server较多的系统存储过程实际上对于数据库系统留有安全隐患。所以应尽可能删除一些不必要的存储过程,因为有些系统的存储过程能很容易被人利用起来提升权限,从而进行破坏。
如果不需要扩展存储过程xp_cmdshell就把它去掉,使用下面的SQL语句:
Use master
sp_dropextendedproc ‘xp_cmdshell
xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果需要这个存储过程,用下面的语句也可以恢复过来:
sp_addextendedproc ‘xp_cmdshell, ‘xpsql70.dll
审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有账号的登录事件。 对于数据库管理人员来说,需要定期查看SQL Server日志,检查是否有可疑的登录事件发生。
5 在防火墙上禁用SQL Server端口
SQL Server的默认安装将监视TCP端口1433以及UDP端口1434。配置操作系统的防火墙来过滤掉到达这些端口的数据包。而且,还应该在防火墙上阻止与指定实例相关联的其他端口。
6 修改TCP/IP使用的端口
在实例属性中选择网络配置中的TCP/IP协议的属性,将TCP/IP使用的默认端口1433变为其他端口。
7 使用最安全的文件系统
NTFS最适合安装SQL Server的文件系统,它比FAT文件系统更稳定且更容易恢复,而且它还包括一些安全选项,例如文件和目录ACL以及文件加密(EFS)。在安装过程中,如果侦测到NTFS,SQL Server将在注册表键和文件上设置合适的ACL,但不去更改这些权限。
通过EFS,数据库文件将在运行SQL Server的账户身份下进行加密。只有这个账户才能解密这些文件,如果需要更改运行SQL Server的账户,那么必须首先在旧账户下解密这些文件,然后在新账户下重新进行加密。
8 审核指向SQL Server的连接
SQL Server可以记录事件信息,用于系统管理员的审查。至少应该记录失败的SQL Server连接尝试,并定期查看这个日志。在可能的情况下,不要将这些日志和数据文件保存在同一个硬盘上。
要在SQL Server的Enterprise Manager中审核失败连接,按步骤操作:1)展开服务器组;2)右键点击服务器,然后点击属性;3)在安全性选项卡的审核等级中点击失败;4)要使这个设置生效,必须停止并重新启动服务器。
9 使用协议加密
SQL Server 2000使用Tabular Data Stream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文的,包括密码、数据库内容等。这是一个很大的安全威胁,能被人在网络中截获到他们需要的东西,包括数据库账号和密码。所以,在条件容许情况下,最好使用SSL来加密协议,当然这需要一个证书来支持。
以上是对当前SQL Server处于网络环境下可能面临的威胁及安全隐患进行安全设置的简介。维护系统的安全是一项长期的工作,需要不断对数据库系统进行升级,加强技术性安全措施。
参考文献
[1]刘启原,刘怡.数据库与信息系统的安全[M].北京:科学出版社,2000
[2]李海泉,李健.计算机网络安全与加密技术[M].北京:科学出版社,2001
[3]曹效阳.浅谈SQL Server中的安全策略[J].现代计算机,2006(1)
[4]刘瑜,陈铁英.Microsoft SQL Server数据库的安全策略及实现方法[J].计算机工程与设计,2003,24(1):68-71