请问专家:在网上看到SQL Server的安全性令人担忧,我想知道如何才能使我的SQL Server数据库尽可能的安全?
有一些步骤你可以用来使SQL Server 数据库对篡改数据和黑客攻击更有抵抗力。其中一些是好的服务器管理中的简单的部分,例如使SQL Server保持最新的补丁,而另一些则涉及了一些用户在使用中的监控。下面的这五个步骤将带你开始这项工作。
查找最新的服务程序包
时刻确保你装了最新的服务程序包。对于SQL Server 2000,这个补丁是SP
使用安全警报
补丁能够帮助你保护你的SQL Server 数据库免受许多威胁,但是他们的发布速度总是跟不上那些移动迅速的安全性问题的处理,例如Spammer 蠕虫。所以你就会想要使用微软公司的免费的安全通知服务,一封电子邮件服务就可以使你了解关于破坏安全的问题和怎样处理它们。
运行微软的基线安全分析器(MBSA)
这个工具对于SQL Server 和MSDE 2000 Desktop Engine 都是可用的,并且它可以在本地运行,也可以在网络中运行。它寻找密码,访问权限,访问控制清单和注册的问题,并且检查遗漏的安全程序包或服务程序包。你可以在TechNet上找到这个工具的相关信息。
删除SA和旧密码
人们犯的关于密码的最大的安全性错误就是对系统管理员(SA)密码不做任何修改。你可能很轻易的忽略安装文件中的剩余的配置信息,保护得很差的认证信息和其他一些敏感的数据就会遭黑客破坏。你必须删除在这个路经下的旧的安装文件:Program Files\Microsoft SQL Server\MSSQL\Install或Program Files\Microsoft SQL Server\MSSQL$
监控连接
连接可以告诉你谁试图访问SQL Server,所以监视和控制连接是保护数据库安全的一个非常好的方法。对于一个大型的活动的SQL Server 数据库,可能会有太多的数据连接需要监控,但是监控失败的连接是非常有价值的,因为它们可能表现出使用的企图。你可以在企业管理器中在服务组上右击,然后选择Properties,记录下失败连接的日志。然后点击Security选项卡,在Audit Level下点击Failure来停止并重新启动服务器。
——————————————————————————————
背景文章:
Microsoft SQL Server的安全性控制策略
引言
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。
对于数据库管理来说,保护数据不受内部和外部侵害是一项重要的工作。Microsoft SQL Server 正日益广泛的使用于各部门内外,作为SQL Server(SQL Server是指Microsoft SQL Server,下文同)的数据库系统管理员,需要深入的理解SQL Server的安全性控制策略,以实现管理安全性的目标。
图1给出了SQL Server安全控制策略示意图。由图可见,SQL Server的安全控制策略是一个层次结构系统的集合。只有满足上一层系统的安全性要求之后,才可以进入下一层。
图1 SQL Server安全性控制策略示意图
各层SQL Server安全控制策略是通过各层安全控制系统的身份验证实现的。身份验证是指当用户访问系统时,系统对该用户的账号和口令的确认过程。身份验证的内容包括确认用户的账号是否有效、能否访问系统、能访问系统的哪些数据等。
身份验证方式是指系统确认用户的方式。SQL Server系统是基于Windows NT/2000操作系统的,现在的SQL Server系统可以安装在Windows 95(需要安装Winsock升级软件)、Windows 98和Windows ME之上(此时,将没有第一层和第二层的安全性控制),但旧的SQL Servers系统只能运行在Windows NT/2000操作系统上。Windows NT/2000对用户有自己的身份验证方式,用户必须提供自己的用户名和相应的口令才能访问Windows NT/2000系统。
这样SQL Server的安全系统可在任何服务器上通过两种方式实现:SQL Server和Windows结合使用(SQL Server and Windows)以及只使用Windows(Windows Only)。访问Windows NT/2000系统用户能否访问SQL Server系统就融令长度和账号锁定;通过增加单个登录账号,允许在SQL Server系统中增加用户组;允许用户迅速访问SQL Server系统,而不必使用另一个登录账号和口令。
SQL Server系统按照下列步骤处理Windows 身份验证方式中的登录账号:
1)当用户连接到Windows NT/2000系统上时,客户机打开一个到SQL Server系统的委托连接。该委托连接将Windows NT/2000的组和用户账号传送到SQL Server系统中。因为客户机打开了一个委托连接,所以SQL Server系统知道Windows NT/2000已经确认该用户有效。
2)如果SQL Server系统在系统表syslogins的SQL Server用户清单中找到该用户的Windows NT/2000用户账号或者组账号,就接受这次身份验证连接。这时,SQL Server系统不需要重新验证口令是否有效,因为Windows NT/2000已经验证用户的口令是有效的。
3)在这种情况下,该用户的SQL Server系统登录账号即可以是Windows NT/2000的用户账号,也可以是Windows NT/2000组账号。当然,这些用户账号或者组账号都已定义为SQL Server系统登录账号。
4)如果多个SQL Server机器在一个域或者在一组信任域中,那么登录到单个网络域上,就可以访问全部的SQL Server机器。
5. 混合模式
混合模式最适合用于外界用户访问数据库或不能登录到Windows域时。
混合方式的SQL Server身份验证方式有下列优点:混合方式允许非Windows NT/2000客户、Internet客户和混合的客户组连接到SQL Server中;SQL Server身份验证方式又增加了一层基于Windows 的安全保护。SQL Server按照下列步骤处理自己的登录账号:
1.当一个使用SQL Server账号和口令的用户连接SQL Server时,SQL Server验证该用户是否在系统表syslogins中且其口令是否与以前纪录的口令匹配。
2.如果在系统表syslogins中没有该用户账号,那么这次身份验证失败,系统拒绝该用户的连接。
结束语
SQL Server提供多层安全。在最外层,SQL Server的登录安全性直接集成到Widows NT/2000的安全上,它允许Windows NT服务器验证用户。使用这种"Windows 验证"SQL Server就可以利用Windows NT/2000的安全特性,例如安全验证和密码加密、审核、密码过期、最短密码长度,以及在多次登录请求无效后锁定帐号。