Rom*_*man 5 asp-classic sql-server-2008
我有旧的经典 ASP 应用程序(不是 asp.net),我需要对其进行配置才能使用 Microsoft SQL Server 2008。它与以下配置字符串配合使用效果很好:
SERVER=myServer;DRIVER=SQL SERVER;DATABASE=myDatabase;UID=sa;PWD=somepass
Run Code Online (Sandbox Code Playgroud)
但我需要使用集成安全性。但在我尝试的任何类型的声明中都出现错误。类似的东西和很多变体都不起作用:
SERVER=myServer;DRIVER=SQL SERVER;DATABASE=myDatabase;Integrated Security=SSPI;
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:经典 ASP 集成安全性的连接字符串应该是什么样子。或者可能需要额外的网络服务器配置?
请注意,假设您使用匿名身份验证,这将根据您的 asp 应用程序池的身份验证命中 SQL。
我看到您添加了一条注释,指出 IIS 5,可以通过转到站点的属性,选择“目录安全”选项卡,然后单击“匿名”上的“编辑”按钮,将站点设置为在 ISS5 上使用 Windows 身份验证。访问和身份验证控制”部分。禁用匿名身份验证并勾选“集成 Windows 安全”选项。
(注意:网络服务器需要能够验证凭据,因此您可能会遇到 NTLM 和 kerberos 问题,具体取决于您的域配置 - 请小心行事!)
这应该以经过身份验证的用户身份执行 asp 文件,在这种情况下,您的连接字符串将能够使用受信任的连接。
您在这里有几种选择,具体取决于您可以使用的提供商。
例如,对于 SQL Native Client 9.0 OLE DB 提供程序,您可以使用:
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
Run Code Online (Sandbox Code Playgroud)
Native Client 10 略有不同:
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
Run Code Online (Sandbox Code Playgroud)
我更喜欢 SQLOLEDB 提供程序(过去我在 SQL SERVER 驱动程序和 VARCHAR(MAX) 方面遇到了麻烦):
Provider=SQLOLEDB;Data Source=Your_Server_Name;Initial Catalog=myDataBase;Integrated Security=SSPI;
Run Code Online (Sandbox Code Playgroud)
注意:突然更改身份验证可能会破坏其他内容 - 我当然建议在 SQL 服务器上添加 SQL 凭据并在连接字符串中使用它。