【问题标题】:Complains of a user that does not exist不存在的用户的投诉
【发布时间】:2012-07-22 14:40:24
【问题描述】:

我已将我的应用程序池的用户指定为 SERVER4\IUSR_SERVER4。然后我将此用户添加到 SQL Server。但是当我尝试连接到数据库时,出现以下错误:

Server Error in '/BSHHD' Application.
Cannot open user default database. Login failed.
Login failed for user 'SERVER4\Administrator'. 

让我发疯的是没有名为 SERVER4\Administrator 的用户。为了能够从我的网站正确连接到此 SQL Server 数据库,我需要做什么?

附:我认为这与会员身份验证有关。现在我需要了解 Membership 如何访问 SQL Server 以及登录凭据的指定位置

【问题讨论】:

  • 我看到了 3 个选项。以用户身份运行您的站点 - 并使用 Windows 身份验证、在站点上强制执行 NT 身份验证、以用户身份登录,或者最后创建一个用户名 + 密码专门供您的站点使用。
  • 运行您的应用程序池的帐户并不一定意味着这是用于连接到您的数据库的凭据。您究竟是如何连接到数据库的?
  • 这是我的连接字符串:Data Source=SERVER4\SQLEXPRESS;Initial Catalog=dok;Integrated Security=False;User ID=clerk;Password=dsmf1914 我只是创建一个 SQL 连接然后打开它。

标签: asp.net sql-server sql-server-2008 exception-handling database-connection


【解决方案1】:

问题是,应用程序池用户不一定是您用来连接到 MSSQL 的用户(正如 cmets 中的一个人已经说过的那样)。看到你的连接字符串后,可能就是这种情况,也许,只是也许,问题不是用户,而是默认数据库。

我过去遇到过这个错误:尝试将您在连接字符串(职员)默认数据库中使用的用户设置为其他内容。当您之前为用户设置了默认数据库而现在该数据库不再存在或出现问题时,此错误很常见。

您可以使用以下方式更改用户的默认数据库:

Exec sp_defaultdb @loginame='clerk', @defdb='dok'

你也可以用这样的东西,但我从来没有用过:

ALTER LOGIN SQLLogin WITH DEFAULT_DATABASE = AvailDBName

此外,无需将集成安全设置为 false,因为它已经是默认值。我希望这会有所帮助 =)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多