我正在尝试在我自己的机器上设置测试环境,我们的公司网站是用经典的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中尝试时会遇到相同的错误
答案 0 :(得分:0)
我建议您在SQL Server中创建一个特定用户,测试与该用户的db连接,然后在您的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
%>
答案 1 :(得分:0)
我已设法通过将SQL提供程序切换到SQLNCLI
来解决问题Provider=SQL;Server=localhost;Database=Filbert;Integrated Security=SSPI;