-1

我正在尝试在我自己的机器上设置一个测试环境,我们公司的网站是用经典的 asp 编写的。这个想法是使用集成的 Windows 身份验证来连接到数据库。

我正在使用以下连接字符串

Provider=SQLOLEDB.1;Server=localhost;Database=Filbert;Integrated Security=SSPI;

但是浏览器响应

Microsoft OLE DB Provider for SQL Server (0x80004005)
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.

在 SQL 日志中我可以看到

Login failed for user 'NT AUTHORITY\SYSTEM'. [CLIENT: <local machine>]
Error: 18456, Severity: 14, State: 16.

状态 16 错误是

我正在运行 Windows XP SP3、IIS 5.1、SQL Server 2005

编辑:我还使用 SQL 身份验证创建并测试了登录。我可以使用 SQL 管理工作室进行 SQL 身份验证登录,但是从 ASP 尝试时会出现相同的错误

4

2 回答 2

0

我建议您在 SQL Server 中创建一个特定用户,使用该用户测试与数据库的连接,然后在您的 asp 代码中执行以下操作

<%
Provider=SQLOLEDB.1;Password=YourPassword;Persist Security Info=True;User ID=YourUserID;_
       Initial Catalog=YourDB;Data Source=YOUR_LOCAL_SERVER_NAME

 Set commInsert = Server.CreateObject("ADODB.Connection")
 commInsert.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;_
     PersistSecurity Info=False;Initial Catalog=_
     YourDB;_Data Source=YOUR_LOCAL_SERVER_NAME

 'now you can eg do an insert
 strInsertCommand = "INSERT INTO tableName(TextField, NumericField)_
     VALUES('ABCDE', 12345);"
 commInsert.Execute(strInsertCommand) ' Execute the insert command
 commInsert.Close()
 Set commInsert = Nothing
 %>
于 2012-06-18T11:14:36.603 回答
0

我已经设法通过将 SQL 提供程序切换到 SQLNCLI 来解决问题

Provider=SQL;Server=localhost;Database=Filbert;Integrated Security=SSPI;
于 2012-06-19T08:21:12.553 回答