如何使用 SSL 来确保与 SQL Server 2000 安全通信(原文).doc_第1页
如何使用 SSL 来确保与 SQL Server 2000 安全通信(原文).doc_第2页
如何使用 SSL 来确保与 SQL Server 2000 安全通信(原文).doc_第3页
如何使用 SSL 来确保与 SQL Server 2000 安全通信(原文).doc_第4页
如何使用 SSL 来确保与 SQL Server 2000 安全通信(原文).doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何使用 SSL 来确保与 SQL Server 2000 安全通信更新日期: 2004年04月20日本页内容目标适用范围如何使用本章内容摘要您必须了解的背景知识安装服务器验证证书验证证书是否已安装在客户端安装 CA 颁发的证书强制所有客户端使用 SSL允许客户端决定是否使用 SSL验证通信是否已加密其他资源目标本章的目标是:将 SQL Server 2000 配置为要求所有客户端使用 SSL 以确保安全通信。将 SQL Server 2000 配置为向客户端提供使用 SSL 进行安全通信的选项。返回页首适用范围本章适用于以下产品和技术:Microsoft Windows XP 或 Windows 2000 Server (Service Pack 3) 以及更高版本的操作系统Microsoft 证书服务Microsoft 网络监视器Microsoft .NET Framework 版本 1.0 (Service Pack 2) 以及更高版本Microsoft Visual Studio 1.0 .NET 以及更高版本Microsoft Visual C# .NETSQL Server 2000 (Service Pack 2) 以及更高版本返回页首如何使用本章内容若要学好本章内容:必须具有两台运行 Windows XP 或 Windows 2000 Server 操作系统的计算机,并配置如下:数据库服务器计算机上具有 SQL Server 2000,且已安装了 Northwind 示例数据库。在客户端计算机上安装了 Microsoft Data Access Components (MDAC) 2.6 或更高版本或 SQL Server 2000 客户端连接库。您必须具有使用 Visual C# .NET 进行编程的经验。您必须具有使用 Visual Studio .NET 开发环境的经验。您必须具有配置 SQL Server 2000 的经验。您必须具有访问 Microsoft 证书服务以生成 SSL 证书的权限。您必须具有使用网络监视器工具的经验。阅读第 4 章安全通信。其中介绍了 SSL 及其最常见的用途。阅读本指南中的第 12 章数据访问安全性。这一章简要概述了数据库安全性问题和选项。返回页首摘要安全套接字层 (SSL) 是一套提供身份验证、保密性和数据完整性的加密技术。SSL 最常用来在 Web 浏览器和 Web 服务器之间建立安全通信通道。然而,还可以使用 SSL 来保护客户端应用程序(直接调用方)与 Microsoft SQL Server 2000 之间的通信。 本章介绍如何将 SQL Server 2000 配置为使用 SSL 确保与客户端应用程序进行安全通信。返回页首您必须了解的背景知识在开始学习本章之前,您应该知道:SSL 是使用 Internet 协议安全性 (IPSec) 来确保数据库通信安全的替代方法。有关如何使用 IPSec 确保数据库通信安全的详细信息,请参见本指南中的如何使用 IPSec 在两个服务器之间进行安全通信。当客户端或服务器 IP 地址发生更改时,并不需要更改配置。这一点与 IPSec 不同。必须在数据库服务器计算机上安装服务器证书,SSL 才能运行。客户端计算机上还必须有来自同一机构的根证书颁发机构 (CA) 证书。客户端必须已经安装了 SQL Server 2000 连接库。早期版本或通用库会无法运行。SSL 只适用于 TCP/IP(为 SQL Server 推荐采用的通信协议)和命名管道。您可以将服务器配置为对所有连接强制使用加密。您可以在客户端上执行以下操作:强制对所有传出连接进行加密。通过使用连接字符串,允许客户端应用程序选择是否按连接进行加密。返回页首安装服务器验证证书SSL 要求服务器拥有由所连接的客户端信任的证书颁发机构 (CA) 颁发的服务器身份验证证书。 安装服务器证书1.使用管理员帐户登录到数据库服务器计算机。2.启动 Internet Explorer 并浏览到 Microsoft 证书服务,例如:http:/MyCA/certsrv3.单击“申请一个证书”,然后单击“下一步”。4.单击“高级申请”,然后单击“下一步”。 5.单击“使用表格向这个 CA 提交一个证书申请”,然后单击“下一步”。6.填写证书申请表,指明以下几点:1.在“名称”字段中,输入运行 SQL Server 的计算机的完全限定域名。例如:2.在“预期目的”(或“需要的证书类型”)字段中,单击“服务器身份验证证书”。3.对于加密服务提供程序 (CSP),单击“Microsoft RSA 通道加密提供程序”。注意:Microsoft 基本加密提供程序 1.0 版和 Microsoft 增强加密提供程序同样有效。而 Microsoft 强加密提供程序无效。4.选择“使用本地机器保存”复选框。注意:不要选择“启用强私钥保护”。7.单击“提交”提交申请。如果证书服务器自动颁发证书,则可以立即安装证书。否则,可以浏览到 Microsoft 证书服务并选择“检查挂起的证书”,在 CA 管理员颁发证书之后安装证书。 返回页首验证证书是否已安装此过程验证是否已成功安装服务器证书。验证证书是否已安装1.单击任务栏上的“开始”按钮,然后单击“运行”。2.键入“mmc”,然后单击“确定”。3.在“控制台”菜单上,单击“添加/删除管理单元”。4.单击“添加”。5.单击“证书”,然后单击“添加”。6.单击“计算机帐户”,然后单击“下一步”。7.确保选中了“本地计算机:(运行本控制台的计算机)”,然后单击“完成”。 8.单击“关闭”,然后单击“确定”。9.在左窗格的树视图中,展开“证书(本地计算机)”,展开“个人”,然后选择“证书”。10.验证是否确实有一个证书具有您在前一个过程中指定的完全限定域名。可以双击证书查看它的详细信息。返回页首在客户端安装 CA 颁发的证书安装证书并重新启动 SQL Server 服务后,SQL Server 就可以与客户端协商 SSL。使用 SSL 连接到 SQL Server 的客户端必须:已安装 MDAC 2.6 或 SQL Server 2000 连接库。 信任 SQL Server 的证书颁发者。在客户端计算机上安装 CA 颁发的证书1.以管理员身份登录到客户端计算机。2.启动 Internet Explorer 并浏览到 Microsoft 证书服务,例如:http:/MyCA/certsrv3.单击“检索 CA 证书或证书吊销列表”,然后单击“下一步”。4.单击“安装此 CA 证书路径”,然后在确认对话框中单击“是”以安装根证书。返回页首强制所有客户端使用 SSL可以将服务器配置为强制所有客户端使用 SSL(如此过程所述),或者可以让客户端选择是否按连接使用 SSL(如下一过程所述)。配置服务器强制客户端使用 SSL 的优点是:保证了所有通信的安全。拒绝任何不安全的连接。缺点是:所有客户端必须安装了 MDAC 2.6 或 SQL Server 2000 连接库;早期版本或通用库将无法连接。不需要保护的连接由于额外的加密,性能开销会有所增加。 强制所有客户端使用 SSL1.在运行 SQL Server 的计算机上,单击“Microsoft SQL Server”程序组中的“服务器网络实用工具”。2.单击选择“强制协议加密”。3.验证是否启用了 TCP/IP 和/或命名管道。 其他协议不支持 SSL。4.单击“确定”关闭 SQL Server 网络实用工具,然后在“SQL Server 网络实用工具”消息框中单击“确定”。5.重新启动 SQL Server 服务。所有后续客户端连接都会被要求使用 SSL,无论它们是否指定安全连接。返回页首允许客户端决定是否使用 SSL此过程说明如何配置 SSL 以允许客户端选择是否使用 SSL。可以将客户端库配置为对于所有连接强制使用 SSL,或者可以让各应用程序在每个连接的基础上进行选择。配置客户端的优点在于:只有确实需要 SSL 的连接才会产生 SSL 系统开销。不支持在 SQL Server 中使用 SSL 的客户端仍然可以连接。如果采用此方法,应确保您允许存在不安全的连接。重新配置服务器1.在运行 SQL Server 的计算机上,运行“服务器网络实用工具”。2.清除“强制协议加密”复选框。3.重新启动 SQL Server 服务。4.返回到客户端计算机。对所有客户端连接使用 SSL使用这一方法,您可以将客户端库配置为对所有连接都使用 SSL。这意味着将不能访问不支持加密的 SQL Server 和 SQL Server 2000 之前的 SQL Server 版本。1.在“Microsoft SQL Server”程序组中,单击“客户端网络实用工具”。2.确保启用了 TCP/IP 和/或命名管道。3.选择“强制协议加密”。允许应用程序选择是否使用加密在此方法中,应用程序使用连接字符串来决定是否使用加密。这允许每个应用程序仅在需要时才使用加密。1.如果使用 OLE-DB 数据提供程序连接到 SQL Server,请将“对数据使用加密”设置为“true”,如下面的 OLE-DB 连接字符串示例所示。Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=sql01;Use Encryption for Data=True2.如果使用 SQL Server .NET 数据提供程序连接到 SQL Server,请将“加密”设置为“true”,如下例所示。Server=sql01;Integrated Security=SSPI;Persist Security Info=False;Database=Northwind;Encrypt=True返回页首验证通信是否已加密在此过程中,将使用网络监视器来验证在应用程序服务器与数据库服务器之间传送的数据是否已加密。首先以明文形式发送数据,然后通过先配置服务器,再配置客户端来启用加密。验证通信是否已加密1.在客户端计算机上,使用 Visual Studio.NET 创建一个名为 SQLSecureClient 的新 C# 控制台应用程序。2.将下面的代码复制到 class1.cs,替换所有现有的代码。注意:用数据库服务器的名称替换连接字符串中的服务器名。using System;using System.Data;using System.Data.SqlClient;namespace SQLSecureClient class Class1 STAThread static void Main(string args) / 使用您的数据库服务器的名称替换 以下连接 / 字符串中的服务器名称 SqlConnection conn = new SqlConnection( server=sql01;database=NorthWind;Integrated Security=SSPI); SqlCommand cmd = new SqlCommand(SELECT * FROM Products); try conn.Open(); cmd.Connection = conn; SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read() Console.WriteLine(0 1, reader.GetInt32(0).ToString(), reader.GetString(1) ); reader.Close(); catch( Exception ex) finally conn.Close(); 3.在“生成”菜单上,单击“生成解决方案”。4.为了使两台计算机之间的 Windows 身份验证取得成功,必须在数据库服务器计算机上复制当前以交互方式登录到客户端计算机所用的帐户。确保用户名和密码都匹配。另一种方法是使用两台计算机都可识别的域帐户。还必须使用 SQL Server 企业级管理器为新创建的帐户创建一个数据库登录,并在 Northwind 数据库中为此登录添加一个新的数据库用户。 5.在数据库服务器计算机上,使用 SQL Server 网络实用工具禁用加密(确保未选择“强制协议加密”选项)。6.在数据库服务器计算机上,单击“管理工具”程序组中的“网络监视器”。注意:Windows 2000 Server 提供网络监视器的限制版。Microsoft SMS 提供网络监视器的完全版。如果您没有安装网络监视器,请转到控制面板中的“添加或删除程序”,单击“添加/删除 Windows 组件”,从“Windows 组件”列表中选择“管理和监视工具”,单击“详细信息”,然后单击“网络监视工具”。单击“确定”,然后单击“下一步”安装网络监视器的限制版。可能会提示您插入 Windows 2000 Server CD。7.在“捕获”菜单上,单击“筛选”创建新的筛选器,配置它以查看在应用程序服务器与数据库服务器之间发送的 TCP/IP 网络通信。8.单击“开始捕获”按纽。9.返回到客户端计算机,然后运行测试控制台应用程序。Northwind 数据库的产品列表应显示在控制台窗口中。10.返回到数据库服务器,然后单击网络监视器中的“停止并查看捕获”按钮。11.双击第一个捕获的帧以查看捕获的数据。12.向下滚动以查看捕获的帧。您应该能看到明文形式的 SELECT 语句,后面带有从该数据库检索到的产品列表。13.现在,使用 SQL Server 网络实用工具配置服务器,强制所有连接使用加密: 1.使用 SQL Server 网络实用工具选择“强制协议加密”。2.停止并重新启动 SQL Server 服务。14.返回网络监视器并单击“开始捕获”按钮。在“保存文件”对话框中,单击“否”。15.返回到客户端计算机,然后再次运行测试控制台应用程序。16.返回到数据库服务器计算机,然后单击网络监视器中的“停止并查看捕获”。17.确认数据现在已变得难以看懂(因为已加密)。18.重新配置服务器,取消强制加密:1.使用 SQL Server 网络实用工具并清除“强制协议加密”复选框。2.停止并重新启动 SQL Server 服务。19.在网络监视器中开始新的捕获并重新运行客户端应用程序。确认数据再次成为明文。20.返回到客户端计算机,从“Microsoft SQL Server”程序组中选择“客户端网络实用工具”。21.选择“强制协议加密”,然后单击“确定”关闭客户端网络实用工具。22.返回网络监视器并单击“开始捕获”按钮。在“保存文件”对话框中,单击“否”。23.返回到客户端计算机,然后再次运行测试控制台应用程序。24.返回到数据库服务器计算机,然后单击网络监视器中的“停止并查看捕获”。25.确认数据现在已经难以看懂(因为已加密)。请注意,在所有情况下,SQL Server 在通信序列开始时都将其服务器身份验证证书以明文形式发送到客户端。这是 SSL 协议的一部分。还要注意,即使服务器和客户端都不需要加密,这也会发生。返回页首其他资源有关如何在 Windows 2000 中安装网络监视器的信息,请访问:Microsoft 知识库文章 243270:“HOW TO: Install Network Monitor in Windows 2000”(HOW TO:在 Windows 2000 中安装网络监视器)。网址为:/default.aspx?scid=243270。Microsoft 知识库文章 276553,“HOW TO: Enable SSL Encryption for SQL Server 2000 with Certificate Server”(为具有证书服务器的 SQL Server 2000 启用 SSL 加密),网址为:/default.aspx?scid=276553。有关网络监视器的更多信息,请参见 MSDN 上的 Microsoft Platform SDK 的“网络监视器”部分:/library/default.asp?url=/library/en-us/netmon/netmon/network_monitor.asp。Microsoft Knowledge Base Article - 319723 支持中心Small Business Server SQL Server 概要信息联系我们支持的选项和价格,电话和网上支持客户服务客户意见,产品购买,站点和产品信息页面选项发送打印INF:包括服务器群集上的 SQL Server 虚拟服务器的 SQL Server 2000 Kerberos 支持适用于 概要您可以对 Microsoft SQL Server 2000 使用 Kerberos 身份验证。对于这种功能,SQL Server 2000 将其作为典型 Microsoft Windows 2000 Active Directory 域安装的组成部分为其提供支持。使用 Microsoft Windows 2000 Service Pack 3 (SP3),您可以在服务器群集中启用 Kerberos 身份验证。有关此新增功能的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 235529 Kerberos Support on Windows 2000-Based Server 注意:只有在运行 Windows 2000 SP3 时,才可以使用此功能。SQL Server 2000 故障转移群集也使用此功能。当 SQL Server 所依赖的网络名称资源位于基于 Windows 2000 的群集中时,可以在将计算机升级到 Windows 2000 SP3 后对该资源使用 Kerberos 身份验证。要安装 SQL Server 故障转移群集,必须先安装 Microsoft SQL Server 2000 Enterprise Edition 或 Developer Edition。 更多信息SQL Server 可以为服务器群集使用 Kerberos 身份验证。您可以对运行 SQL Server 的独立计算机使用 Kerberos 身份验证,也可以对运行于虚拟服务器上的 SQL Server 实例使用 Kerberos 身份验证。 连接到运行 Microsoft Internet 信息服务的服务器并创建到 SQL Server 2000 的 Kerberos 连接本部分介绍了如何连接到运行 Microsoft Internet 信息服务 (IIS) 的服务器来创建与一台运行 SQL Server 的服务器的 Kerberos 连接。注意:在执行安装过程之前,请先下载 Kerbray 和 SetSPN 实用工具。要下载 Kerbtray 实用工具,请访问以下 Microsoft Web 站点: /windows2000/techinfo/reskit/tools/existing/kerbtray-o.asp使用 Kerbtray.exe 可以轻松地从所使用的任何关联的计算机中验证或删除(或者既验证又删除)Kerberos 票证。 要下载 SetSPN 实用工具,请访问以下 Microsoft Web 站点: /windows2000/techinfo/reskit/tools/existing/setspn-o.asp下面的过程将提供一个示例来介绍设置顺序,该示例中将通过 IIS 页使用 Kerberos 身份验证来访问正在运行 SQL Server 的服务器。第 1 步:配置域控制器在域控制器上的“Active Directory 用户和计算机”中: 1. 右键单击您要将其设置为委派(IIS 服务服务器)的计算机,然后单击选中“Trust this computer for delegation”(信任此计算机来委派)。如果运行 SQL Server 的计算机看起来是所联系的最后一台计算机,但是该计算机具有一台已链接的服务器,则还必须授予这台服务器委派权限。如果它不是链中的最后一台计算机,则必须信任所有处于中间环节的计算机来进行委派。 2. 将委派权限授予 SQL Server 服务帐户域用户帐户。您必须有一个供已安装的群集 SQL Server 使用的域用户帐户(如果计算机所运行的 SQL Server 使用本地系统帐户,则不需要执行这一步): 1. 在“用户”文件夹中,右键单击该用户帐户,然后单击“属性”。 2. 在用户帐户属性对话框中,单击“帐户”选项卡。 3. 在“帐户选项”下,单击选中“帐户可委派其他帐户”复选框。一定要为此帐户清除“敏感帐户,不能被委派”复选框。3. 使用 Kerbtray.exe 实用工具验证是否从域控制器和主机中收到了 Kerberos 票证: 1. 右键单击通知区域中的 Kerbtray 图标,然后单击清除票证。 2. 等待绿色 Kerbtray 图标变为黄色。在发生此现象后,请立即打开命令提示窗口并运行下面的命令:net session * /d这将停止现有的会话,并强制建立新会话和接收 Kerberos 票证。第 2 步:配置 IIS 服务服务器1. 将默认的 Web 站点 Wwwroot 文件替换为示例 .asp 文件。要创建示例 .asp 文件,请使用在“第 5 步:测试配置”部分提供的代码。 2. 将此文件添加到 Wwwroot 文件夹。为此,请使用“用于检索 SQL Server 数据的 ASP 测试脚本”部分的代码示例。将该文件保存为 Default.asp。 3. 将 Web 服务器重新配置为仅使用集成 Windows 身份验证: 1. 右键单击默认的 Web 服务器,然后单击“安全性”文件夹。 2. 在“安全性”文件夹中,做一些适当的更改,然后单击以清除“匿名访问”。 3. 从命令提示符处,运行下面的命令:cscript C:InetpubAdminscriptsadsutil.vbs get w3svc/NTAuthenticationProviders如果启用了协商,则会返回以下内容: NTAuthenticationProviders :(STRING) Negotiate,NTLM有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 215383 HOW TO:Configure IIS to Support Both Kerberos and NTLM Authentication 4. 注意:您必须在 IIS 服务服务器上安装 Microsoft 数据访问组件 (MDAC) 2.6 或更高版本。若要安装它并使其工具可用于测试,请在 Web 服务器上安装 SQL Server 2000 客户端工具。如果仅安装 MDAC 2.6 或更高版本(不安装客户端工具),请访问下面的 Microsoft Web 站点: 5. /data/download.htm6. 验证注册表中是否有 HKLMSWMSMSSQLSERVERClientDSQUERY 值。如果未显示该值,请将它作为 DSQUERY:Reg_SZ:DBNETLIB 添加。 7. 使用 Kerbtray.exe 实用工具验证是否从域控制器和主机中收到了 Kerberos 票证:1. 右键单击通知区域中的 Kerbtray 图标,然后单击清除票证。 2. 等待绿色 Kerbtray 图标变为黄色。发生此现象后,请立即打开命令提示窗口并运行下面的命令:net session * /d这将停止现有的会话,并强制建立新会话和接收 Kerberos 票证。第 3 步:为 SQL Server 创建 SPN警告:只有当客户端使用 TCP/IP 协议连接到 SQL Server 时,SQL Server 才使用 Kerberos。例如,如果客户端使用命名管道协议,SQL Server 就不会使用 Kerberos。如果计算机上有多个 SQL Server 实例,就必须为每个 SQL Server 实例配置服务器主要名称 (SPN),因为每个 SQL Server 实例都使用唯一的 TCP-IP 端口。注意:如果 SQL Server 服务正在 LocalSystem 帐户下运行,就不必手动为 SQL Server 配置 SPN。在 SQL Server 服务启动时,SPN 将自动创建。如果 SQL Server 服务在域用户帐户下运行,则必须手动配置 SPN。为此,请按照下列步骤操作。要为 SQL Server 配置 SPN,请使用 Microsoft Windows Resource Kit 中的 SETSPN 实用工具。要下载 SETSPN 实用工具,请访问以下 Microsoft Web 站点: /windows2000/techinfo/reskit/tools/existing/setspn-o.asp在运行 SETSPN 之前,您必须掌握以下信息: SQL Server 实例在运行时使用的域用户帐户。在下面的示例中,此帐户名为 。注意:如果 SQL Server 实例在 LocalSystem 帐户下运行,则不必运行 SETSPN 实用工具。 运行 SQL Server 的计算机的完全限定域名称 (FQDN)。要确定运行 SQL Server 的计算机的 FQDN,请使用 ping 实用工具。为此,请按照下列步骤操作: o 对运行 SQL Server 的计算机执行 Ping 操作以确定它的 IP 地址: o C:ping MySQLServero Pinging MySQLServer.MyD 0 with 32 bytes of data:Reply from 0: bytes=32 time=1ms TTL=128o 使用 ping -a 来执行 IP 地址的反向查询,以确保域名系统 (DNS) 协议正确返回 FQDN: o C:ping -a 0o Pinging MySQLServer.MyD 0 with 32 bytes of data:Reply from 0: bytes=32 time1ms TTL=128o 对虚拟 SQL Server 名称执行 Ping 操作以获取 IP 地址,并运行 ping -a 以确保 DNS 正确返回 FQDN。注意:如果您使用的是 SQL Server 故障转移群集,请使用虚拟 SQL Server 的 FQDN。 o SQL Server 实例所使用的确切 TCP-IP 端口。要确定此信息,请在运行 SQL Server 的计算机上打开服务器网络实用工具,单击 SQL Server 实例,然后查看 TCP/IP 协议(默认端口)的属性。 确定了 SQL Server 服务在哪个域用户帐户下运行、运行 SQL Server 的计算机的 FQDN 以及 SQL Server 实例所使用的 TCP/IP 端口后,请执行下列步骤来为 SQL Server 创建 SPN。注意:您必须是 Domain Administrators 组的成员,才可以运行 SETSPN 命令。 1. 如果您使用的是 SQL Server 故障转移群集,请运行下面的 SETSPN 命令:setspn -A MSSQLSvc/ 例如,如果 MySQLServer.MyD 在域用户帐户 SQLSVC(其中 MySQLServer.MyD 是 SQL Server 2000 实例的名称并且已经加入群集)下运行,请运行下面的命令:setspn -A MSSQLSvc/MySQLServer.MyD SQLSVC2. 对于运行 SQL Server 的群集计算机和非群集计算机,请运行下面的 SETSPN 命令,以便为运行 SQL Server 的计算机所使用的端口注册 SPN:setspn -A MSSQLSvc/: 例如,如果 MySQLServer.MyD 在端口 1433 上的域用户帐户 SQLSVC 下运行,请运行下面的 SETSPN 命令:setspn -A MSSQLSvc/MySQLServer.MyD:1433 SQLSVC 3. 注册 SPN 以后,请使用 SETSPN 实用工具的 LIST 功能(-L 开关)验证是否已正确注册。运行 SETSPN -L 以列出注册到相应域用户帐户(SQL Server 实例在该帐户下运行)的所有 SPN:setspn -L 例如,如果 MySQLServer.MyD 在端口 1433 上的域用户帐户 SQLSVC 下运行,请运行下面的命令:setspn -A SQLSVC 下面的输出中显示了在第 1 步(在 SQL Server 已加入群集时)和第 2 步(在 SQL Server 未加入群集时)中创建的 SPN:C:setspn -l SQLSVCRegistered ServicePrincipalNames for CN=SQLSVC,CN=Users,DC=MyDomain,DC=com: MSSQLSvc/MySQLServer.MyD MSSQLSvc/MySQLServer.MyD:1433注意:如果您使用的是 SQL Server 故障转移群集,则必须注册一个不带端口号的 SPN 和另一个带端口号的 SPN。对于运行 SQL Server 的典型的非群集计算机,只需注册带端口号的 SPN。但是,如果您有一个额外的 SPN 不带端口号,也不会给非群集计算机带来任何问题。 注意:您还可以使用域控制器上的 Ldifde.exe 实用工具来验证这两种 SPN 注册。本文的“如何收集 Active Directory 服务器主要名称信息的列表”部分对此做了介绍。第 4 步:配置客户机1. 对于将要进行连接的每个客户端,请验证是否已将 Microsoft Internet Explorer 配置为使用 Windows 身份验证: 1. 在 Internet Explorer 中,在“工具”菜单上,单击“Internet 选项”。 2. 单击“高级”选项卡。 3. 在“安全”下,单击选中“启用集成 Windows 身份验证(需要重新启动)”,然后单击“确定”。第 5 步:测试配置对于涉及到的每台计算机: 1. 登录到计算机,然后使用 Kerbtray.exe 来验证计算机是否可以从域控制器获取有效的 Kerberos 票证。 2. 使用 Kerbtray.exe 删除计算机上的所有票证。 3. 创建并连接到返回 SQL Server 数据的 Web 页。注意:请将 SQL SERVERNAME 替换为运行 SQL Server 的计算机的名称: o 如果返回了数据,该页会显示身份验证类型协商,并返回与 sp_helpdb 存储过程(该过程将返回通过 .ASP 页连接到的服务器上的数据库的列表)的结果对应的 SQL Server 数据。 o 如果您在 SQL Server 中启用了审核功能,则在应用程序日志中,您会看到该连接是“受信任的”。用于检索 SQL Server 数据的 ASP 测试脚本下面是一个用于检索 SQL Server 数据的 ASP 测试脚本。使用此代码示例时,一定要将 SQLSERVERNAME 替换为运行 SQL Server 的计算机的名称: Connections string is Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME %set rs = Server.CreateObject(ADODB.Recordset)set cn = Server.CreateObject(ADODB.Connection)cn.Open Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAMErs.open MASTER.sp_helpdb,cnResponse.Write cstr(rs.Fields.Count) +while not rs.EOFResponse.Write cstr(rs(0)+rs.MoveNextwendrs.Closecn.Closeset rs = nothing Frees memory reserved by the recordset.set cn = nothing Frees memory reserved by the connection.%如何收集 Active Directory 服务器主要名称信息的列表要收集 Active Directory 服务器主要名称 (SPN) 信息的列表,请在您的一个域控制器上键入下面的命令(其中 betaland 是指 NetBIOS 域名称,NewoutputUsers.txt 是要用来导出结果的输出文件的名称)。如果您不使用完整路径,则会将该文件放置在您当前在其中运行此命令行的文件夹中。此示例命令可查询整个域: ldifde -d CN=Users,DC=betaland -l servicePrincipalName -F NewoutputUsers.txt此语法可创建一个名为 NewoutputUsers.txt 的文件,该文件包含的信息与本文的“NewouputUsers.txt 的域级别输出”部分中的输出类似。如果您收集整个域的信息,此输出内容可能会异常庞杂。因此,如要将所收集的信息限制到特定用户名,请使用下面的语法,其中 User Name 是用户的名称,betaland 是您要查询的域: ldifde -d CN=用户名,DC=betaland -l servicePrincipalName -F NewoutputUsers.txt将信息收集限定到特定用户可以大大减少搜索时必须处理的数据。如果收集整个域的信息,请搜索所需的服务器的特定用户名。在输出示例中,您会看到: 与不再存在的服务器有关但是没有从 Active Directory 中完全删除的条目。 用户“User Name”具有十台不同的服务器的有效 SPN 信息。此外,您可以使用 Active Directory 服务接口 (ADSI) 工具更正无效的 Active Directory 条目。 警告 在使用“ADSI 编辑”管理单元、LDP 实用工具或任何其他 LDAP 版本 3 客户端时,如果对 Active Directory 对象的属性修改不当,则可能会造成严重问题。这些问题可能会要求您重新安装 Microsoft Windows 2000 Server 或 Microsoft Exchange 2000 Server,也可能要求这两者都重新安装。Microsoft 不保证能够解决因为 Active Directory 对象属性修改不当而产生的问题。修改这些属性需要您自担风险。 NewouputUsers.txt 的域级别输出dn: CN=User Name,CN=Users,DC=betalandchangetype: addservicePrincipalName: MSSQLSvc/CLUSTERDEFAULT.betaland:1257servicePrincipalName: MSSQLSvc/INST3.betaland:3616servicePrincipalName: MSSQLSvc/INST2.betaland:3490servicePrincipalName: MSSQLSvc/SQLMAN.betaland:1433servicePrincipalName: MSSQLSvc/VSS1.betaland:1433servicePrincipalName: MSSQLSvc/INST1.betaland:2536servicePrincipalName: MSSQLSvc/INST4.betaland:3967servicePrincipalName: MSSQLSvc/SQLVIRTUAL1.betaland:1434servicePrincipalName: MSSQLSvc/SQLVIRTUAL.betaland:1433servicePrincipalName: MSSQLSvc/SQLBUSTER.betaland:1315参考有关安全帐户委派的其他信息,请参阅“SQL Server 联机图书”中的“安全帐户委派”主题。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 283791 HOW to Modify Schema Information Using the Ldifde Utility 262177 HOW TO:Enable Kerberos Event Logging 321708 HOW TO:Use the Network Diagnostics Tool (Netdiag.exe) in Windows 2000 326985 HOW TO:Troubleshoot Kerberos-Related Issues in IIS 244474 How to Force Kerberos to Use TCP Instead o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论