【问题标题】:connecting to sql server from classic asp从经典asp连接到sql server
【发布时间】:2012-04-10 16:35:20
【问题描述】:

我有一个在 Windows 身份验证模式下运行的 sql server 2008R2 express。我基于 Windows 帐户在 sql server 中为数据库创建了登录名和用户。我可以通过(以用户身份运行)SSMS 连接到 sql server 数据库并浏览我的数据库就好了。

现在我正在尝试通过第 3 方 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 身份运行。

我哪里错了???

谢谢。

【问题讨论】:

  • 您在 uid 和 pwd 部分之间缺少分号。
  • 很确定 IIS 将传递访问该网站的用户的 Windows 凭据(一旦您按照 Tony 的建议将其更改为 SSPI)。在大多数情况下,除非您特别尝试审核各个 Windows 用户的操作,否则使用 SQL 身份验证从经典 ASP 访问通用数据库就足够了。
  • 再次检查您的数据库名称是否正确。使用不正确的 DBName 时 SQL Server 的错误消息通常看起来很像无效的用户名/密码错误消息。

标签: sql-server-2008 asp-classic


【解决方案1】:

如果你传递的用户名和密码是 SQL Server 身份验证而不是 windows,那么如果它的身份验证模式是 Windows only,它就没有它。

将它们取出并替换为 Integrated Security = SSPI

【讨论】:

  • 你是对的 Tony。我用语句 Integrated Security=SSPI 替换了用户名/密码。现在我收到另一个错误 Microsoft SQL Server Native Client 10.0 错误“80004005”无法打开登录请求的数据库“dbname”。登录失败。
  • 并且您在该实例上是否有该名称的数据库,Windows 用户有权访问......
  • 托尼 感谢您的帮助。我认为这个问题是通过设置匿名身份验证的凭据来解决的,正如 Robin M 在此链接 stackoverflow.com/questions/1139772/… 中解释的那样
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多