**_ 请问专家:在网上看到 _ ** **_ SQL Server _ ** **_ 的安全性令人担忧,我想知道如何才能使我的 _ ** **_ SQL Server _ ** **_ 数据库尽可能的安全? _ **
有一些步骤你可以用来使 SQL Server 数据库对篡改数据和黑客攻击更有抵抗力。其中一些是好的服务器管理中的简单的部分,例如使 SQL Server 保持最新的补丁,而另一些则涉及了一些用户在使用中的监控。下面的这五个步骤将带你开始这项工作。
查找最新的服务程序包
时刻确保你装了最新的服务程序包。对于 SQL Server 2000, 这个补丁是 SP 3a 。记住,服务程序包是渐增的,所以如果你应用了 SP 3a ,你就不需要再应用其他任何在此之前的程序包,例如 SP3, SP2 或 SP1 。 SP 3a 是一个特殊的服务程序包,它是为那些没有进行过以前的任何更新而设计的安装程序,而 SP3 则是为那些已经安装了 SP1 或 SP2 准备的安装程序。
使用安全警报
补丁能够帮助你保护你的 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$ \Install folders 。还有,可以使用 KILLPWD 应用程序来找旧的密码并且删除它们。 Knowledge Base 文章 263968 对这个问题做了详细的说明。
监控连接
连接可以告诉你谁试图访问 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 系统身份验证方式的设置。
** 1. ** ** 用户标识与验证 **
用户标示和验证是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标示自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。
对于获得上机权的用户若要使用数据库时数据库管理系统还要进行用户标识和鉴定。
用户标识和鉴定的方法有很多种,而且在一个系统中往往是多种方法并举,以获得更强的安全性。常用的方法有:
用一个用户名或者用户标识号来标明用户身份。系统内部纪录着所有合法用户的标识,系统验证此户是否合法用户,若是,则可以进入下一步的核实;若不是,则不能使用系统。
为了进一步核实用户,系统常常要求用户输入口令( Password )。为保密起见,用户在终端上输入的口令不显示在屏幕上。系统核对口令以验证用户身份。
用户标识与验证在 SQL Server 中对应的是 Windows NT/2000 登录账号和口令以及 SQL Server 用户登录账号和口令。
** 2. SQL Server ** ** 身份验证方式 **
用户必须使用一个登录账号,才能连接到 SQL Server 中。 SQL Server 可以识别两类的身份验证方式,即: SQL Server 身份验证( SQL Server Authentication )方式和 Windows 身份验证( Windows Authentication )方式。这两种方式的结构如图 2 所示。这两种方式都有自己的登录账号类型。
图 2 SQL Server 系统身份验证方式示意图
注意的是,如果在 Microsoft Windows95/98/ME 上使用 SQL Server 的 Personal 版,作为 SQL Server 宿主的 Microsoft Windows95/98/ME 系统只能使用 SQL Server 登录。因此, Windows NT/2000 身份验证、域用户的账号和域组账号都是不可用的。
当使用 SQL Server 身份验证方式时, 由 SQL Server 系统管理员定义 SQL Server 账号和口令。当用户连接 SQL Serve 时,必须提供登录账号和口令。当使用 Windows 身份验证方式时,由 Windows NT/2000 账号或者组控制用户对 SQL Server 系统的访问。这时,用户不必提供 SQL Server 的 Login 账号和口令就能连接到系统上。但是,在该用户连接之前, SQL Serve 系统管理员必须将 Windows NT/2000 账号或者 Windows NT/2000 组定义为 SQL Server 的有效登录账号。
** 3. ** ** 身份验证模式 **
当 SQL Serve 在 Windows NT/2000 上运行时,系统管理员必须指定系统的身份验证模式类型。 SQL Server 的身份验证模式有两种: Windows 身份验证( Windows Authentication )模式和混合模式( Mixed Mode )。身份验证模式和身份验证方式的关系是:
Windows 身份验证模式 ( Windows 身份验证方式)
混合模式 ( Windows 身份验证方式 和 SQL Server 身份验证方式)
Windows 身份验证模式只允许使用 Windows 身份验证方式,这时用户无法以 SQL Server 的登录账号登录服务器。它要求用户登录到 Windows NT/2000 ,当用户访问 SQL Server 时,不用再次登录。虽然用户仍会被提示登录,但 SQL Server 的用户名会自动从用户网络登录 ID 中提取。而混合身份验证模式即允许使用 Windows NT/2000 身份验证方式,又允许使用 SQL Server 身份验证方式。它使用户既可以登录 SQL Server ,也可用 Windows NT/2000 的集成登录。
集成登录只能在用命名管道连接客户机服务器时使用。当使用混合模式时,无论是使用 Windows NT/2000 身份验证方式的用户,还是使用 SQL Server 身份验证方式的用户,都可以连接到 SQL Server 系统上。也就是说:身份验证模式是对服务器来说的,而身份验证方式是对客户端来说的。
** 4. Windows ** ** 身份验证模式 **
Windows 身份验证模式最适用于只在部门访问数据库的情况。与 SQL Server 身份验证方式相比, Windows 身份验证方式具有下列优点:提供了更多的功能,例如安全确认和口令加密、审核、口令失效、最小口令长度和账号锁定;通过增加单个登录账号,允许在 SQL Server 系统中增加用户组;允许用户迅速访问 SQL Server 系统,而不必使用另一个登录账号和口令。
SQL Server 系统按照下列步骤处理 Windows 身份验证方式中的登录账号:
1 )当用户连接到 Windows NT/2000 系统上时,客户机打开一个到 SQL Server 系统的委托连接。该委托连接将 Windows NT/2000 的组和用户账号传送到 SQL Server 系统中。因为客户机打开了一个委托连接,所以 <SPAN lang=EN-US style="FONT-SIZE: 11pt; C