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

文章翻译 文章翻译
文章编号: 247931 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

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 编程
Microsoft Corporation2088 设计高可用性的 Web 基础结构
Microsoft Corporation2073 对 Microsoft SQL Server 2000 数据库进行编程
有关 Windows 2000 身份验证方法的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
287537 使用基本身份验证生成 Kerberos 令牌

属性

文章编号: 247931 - 最后修改: 2011年5月12日 - 修订: 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
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com