你目前正处于脱机状态,正在等待 Internet 重新连接

在 Active Server Page 中连接到 SQL Server 使用的身份验证方法

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

概要
SQL Server 身份验证(标准安全性)和 Windows NT 身份验证(集成安全性)都是用来从 Active Server Page (ASP) 访问 SQL Server 数据库的 SQL Server 身份验证方法。

注意:本文不适用于 Microsoft Windows 2000 Active Directory 域。本文所讨论的 Microsoft Windows NT 身份验证模式仅适用于 Windows NT 域。
更多信息

SQL Server 身份验证

SQL Server 身份验证依赖于 SQL Server 计算机维护的内部用户列表。该列表不包含 Windows NT 用户并且是特定于 SQL Server 计算机的。可以使用 SQL Server 企业管理器创建和配置用户。要使用此身份验证方法,请执行下列步骤:
  • 如果通过开放式数据库连接 (ODBC) 进行连接,在 ODBC 管理器中配置数据源时,请选择 SQL Server 身份验证。
  • 在 ActiveX 数据对象 (ADO) 连接字符串中,使用 ODBC 时应包括参数“UID”和“PWD”;使用 SQLOLEDB 提供程序时应包括参数“User ID”和“Password”。

Windows NT 身份验证

运行 SQL Server 的计算机允许通过 Windows NT 帐户访问其数据。要启用 Windows NT 身份验证,必须通过 Internet Information Server (IIS) 计算机为 Web 应用程序启用基本身份验证。为此,请执行下列步骤:
  1. 启动 Internet 服务管理器。
  2. 浏览到网站,右键单击该网站,然后单击属性
  3. 单击目录安全性选项卡,单击“匿名访问和身份验证控制”下的编辑,然后选择基本身份验证(密码以明文形式发送)选项。
要配置 IIS 以实现 Windows NT 身份验证,您不能使用 Windows NT 质询/响应 (NTLM) 身份验证。必须使用下面两种 IIS 身份验证方法中的一种:
  • 仅为 Web 应用程序启用基本身份验证。
  • 如果允许用户进行匿名访问,请验证以下内容:
    • 如果在 IIS 中将用户配置为匿名用户,则还必须在运行 SQL Server 的计算机上的 Windows NT 帐户中配置它们。
    • 如果 SQL Server 和 IIS 不在同一台计算机上,则应将用户创建为可访问这两台计算机的域帐户,或者使用同一密码在 SQL Server 计算机和 IIS 计算机上本地创建用户。如果在这两台计算机上本地创建用户,则必须在 SQL Server 计算机上授予该用户本地登录的权限。如果用户是一个域帐户,则必须在 SQL Server 计算机上授予该用户“从网络访问此计算机”的权限。
    • 如果 SQL Server 和 IIS 不在同一台计算机上,则应启动 Internet 服务管理器(位于 Web 应用程序的“目录安全性”属性页上),打开匿名用户帐户对话框,禁用启用自动密码同步选项,然后手动输入帐户密码。
    • IIS 计算机需要使用该用户密码生成一个在另一台服务器上仍然有效的安全令牌。启用启用自动密码同步选项时,则只能为本地计算机生成令牌。
    • 如果 IIS 和 SQL Server 位于同一台计算机上,则连接字符串和 ODBC 配置数据源(如果适用)中 SQL Server 数据源的名称将是本地名称。
此外,还应执行下列步骤以便在 ASP 中使用 Windows NT 身份验证连接到 SQL Server 计算机:
  1. 如果通过 ODBC 进行连接,在 ODBC 管理器中配置数据源时,请选择 Windows NT 身份验证。
  2. 在 ActiveX 数据对象 (ADO) 连接字符串中,使用 ODBC 时应省略参数“UID”和“PWD”,使用 SQLOLEDB 提供程序时应省略参数“User ID”和“Password”。
  3. 如果使用用于 SQL Server 的 OLEDB 提供程序 (Provider=SQLOLEDB) 进行连接,则连接字符串必须包括“Integrated Security=SSPI”。
  4. 在 SQL Server 企业管理器中,将需要通过集成安全性访问的所有 Windows NT 帐户和组添加到登录中,并将它们定义为使用 Windows NT 身份验证。为了简化管理,Microsoft 建议您添加 Windows NT 组而不是单个帐户。在定义帐户时,将权限配置到所有必需的数据库、表和存储过程中。
下列错误消息表明用于 Windows NT 身份验证的 SQL Server 配置存在问题:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D)
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user '\'.

Microsoft OLE DB Provider for ODBC Drivers error '80040e4d'
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
参考
有关更多信息,请参阅以下图书:
John ConnellCoding Techniques for Microsoft Visual Basic .NET(Microsoft Visual Basic .NET 编码技术) Microsoft Press, 2001
注意:本书目前已绝版。
有关更多信息,请参阅下列 Microsoft 培训和认证课程:
Microsoft Corporation2389 使用 ADO.NET 编程
有关 Windows 2000 身份验证方法的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
287537使用基本身份验证生成 Kerberos 令牌
属性

文章 ID:247931 - 上次审阅时间:05/12/2011 08:38:00 - 修订版本: 8.0

Microsoft SQL Server 6.5 标准版, Microsoft SQL Server 7.0 标准版, Microsoft Active Server Pages 4.0, Microsoft SQL Server 2000 标准版, Microsoft Data Access Components 2.6, Microsoft Data Access Components 2.7, Microsoft Windows Small Business Server 2003 Premium Edition, Microsoft Windows Small Business Server 2003 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL 2005 Server Workgroup

  • kbsqldeveloper kbinfo KB247931
反馈