从经典asp连接到sql服务器

问题描述:

我有一个sql server 2008R2快速运行在Windows身份验证模式。我基于一个Windows帐户在sql server中为数据库创建了一个登录名和一个用户。我可以通过(以用户身份运行)SSMS连接到sql server数据库,并很好地浏览我的数据库。从经典asp连接到sql服务器

我现在想通过第三方ASP应用程序

set loginDB = Server.CreateObject("ADODB.Connection") 

'For Windows Server 2008/SQL 2008 users, please use the following line for the DB connection 

loginDB.Open "Provider=SQLNCLI10; Server=(local)\SQLServerName; Database=dbname;Uid="myuser" Pwd="pwd"" 

我收到一个错误说登录失败可为用户myuser连接

而且该网站上的应用程序池,我有运行将其设置为以Windows用户myuser的身份运行。

我在哪里出错?

谢谢。

+1

你错过了uid和pwd部分之间的分号。 – JamieSee 2012-04-10 16:43:59

+0

很确定IIS会传递访问该网站的用户的Windows凭据(一旦您将其更改为SSPI,就像Tony所建议的那样)。在大多数情况下,除非您专门尝试审核单个Windows用户的操作,否则使用SQL身份验证从经典ASP访问通用数据库就足够了。 – 2012-04-10 17:14:56

+0

Double检查您是否具有正确的dbname。使用不正确的DBName时,SQL Server的错误消息通常看起来很像一个无效的用户名/密码错误消息。 – 2012-04-11 07:01:43

如果您传递的是SQL Server身份验证不是Windows的用户名和密码,那么如果它的身份验证模式仅限于Windows,则它不会拥有它。

取出它们并用Integrated Security = SSPI代替

+0

你是对的Tony.I用声明Integrated Security = SSPI替换了用户名/密码。现在我收到另一个错误Microsoft SQL Server Native Client 10.0错误'80004005' 无法打开登录所请求的数据库“dbname”。登录失败。 – cableload 2012-04-10 18:21:05

+0

和你有一个该名称的数据库在该实例,该Windows用户有权访问.... – 2012-04-10 22:45:48

+0

托尼感谢您的帮助。我认为通过设置匿名身份验证的凭据解决了这个问题,作为解释在这个链接http://*.com/questions/1139772/classic-asp-problem-connecting-to-remote-sql-server-database by Robin M – cableload 2012-04-11 13:34:35