为啥会出现以下错误:“尝试附加到数据库失败,并显示以下信息:用户 'x\x' 登录失败。?

Posted

技术标签:

【中文标题】为啥会出现以下错误:“尝试附加到数据库失败,并显示以下信息:用户 \'x\\x\' 登录失败。?【英文标题】:Why does the following error occur: "The attempt to attach to the database failed with the following information: Login failed for user 'x\x'.?为什么会出现以下错误:“尝试附加到数据库失败,并显示以下信息:用户 'x\x' 登录失败。? 【发布时间】:2016-05-31 21:26:47 【问题描述】:

在我的 VS 2015 ASP.NET 项目中,我可以通过包管理器控制台更新我的 SQL Server Express 数据库,并且它已正确填充。但是,当我尝试在 Visual Studio 的服务器资源管理器中刷新数据连接时,出现以下错误:

尝试附加到数据库失败,并显示以下信息: 用户“x\x”登录失败。

此外,当我运行应用程序并尝试使用通过迁移配置文件中的 Seed 方法在数据库中设置的凭据登录时,我得到一个带有以下消息的黄页:

用户“x\x”登录失败。

SQLExpress 数据库文件自动创建错误:

连接字符串使用应用程序 App_Data 目录中的数据库位置指定本地 Sql Server Express 实例。提供者 试图自动创建应用程序服务数据库 因为提供者确定数据库不存在。这 以下配置要求是成功所必需的 检查应用程序服务数据库的存在和 自动创建应用服务数据库:

    如果应用程序在 Windows 7 或 Windows Server 上运行 2008R2,需要特殊配置步骤才能启用自动 提供者数据库的创建。有更多信息可用 在:http://go.microsoft.com/fwlink/?LinkId=160102。 如果 应用程序的 App_Data 目录尚不存在,web 服务器帐户必须具有对应用程序的读写权限 目录。这是必要的,因为 Web 服务器帐户将 如果尚未创建 App_Data 目录,则自动创建 存在。 如果应用程序的 App_Data 目录已经存在,则 Web 服务器帐户只需要对 应用程序的 App_Data 目录。 这是必要的,因为网络 服务器帐户将尝试验证 Sql Server Express 数据库已存在于应用程序的 App_Data 目录中。 从 Web 服务器撤消对 App_Data 目录的读取访问权限 帐户将阻止提供者正确确定 Sql Server Express 数据库已经存在。这将导致错误 当提供者试图创建一个已经存在的副本时 现有数据库。需要写入权限,因为 Web 服务器 创建新数据库时使用帐户的凭据。 SQL 服务器 Express 必须安装在机器上。 进程标识 Web 服务器帐户必须具有本地用户配置文件。见 自述文件了解如何创建本地用户配置文件的详细信息 机器和域帐户。

我的连接字符串如下:

<connectionStrings>
    <add name="Users" connectionString="Data Source=.\SQLExpress;Initial Catalog=Reg;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

这发生在部署到本地 IIS 服务器并为登录 IIS APPPOOL\DefaultAppPool 创建新用户之后。之后,我删除了用于调试的数据库,并尝试从 App_Data 文件夹中的 .mdf 文件重新创建它。这似乎是不可能的。我不明白为什么我的 Windows 域\用户登录从那时起一直失败。有趣的是,我使用新数据库创建的测试项目运行良好,而旧数据库却崩溃了。

我现在找不到任何兼容的答案。会是什么?

谢谢!

【问题讨论】:

不清楚问题最终是如何解决的 【参考方案1】:

检查以下内容:

    打开IIS &gt; Application Pools 并检查DefaultAppPool 是您的网站池名称。

    打开 SQL Studio 管理器并确保已将 IIS APPPOOL\DefaultAppPool 添加为 security &gt; Logins 下的数据库登录之一

3 在security &gt; Logins &gt; user mapping 确保您的数据库名称映射在IIS APPPOOL\DefaultAppPool

4.同样在security &gt; Logins &gt; user mapping下-将权限设置为'db_owner'

【讨论】:

以上是关于为啥会出现以下错误:“尝试附加到数据库失败,并显示以下信息:用户 'x\x' 登录失败。?的主要内容,如果未能解决你的问题,请参考以下文章

为啥即使没有错误,表单也会出现错误消息?

用grub安装ubuntu为啥会出现以下错误了

为啥会出现 NSException 错误?

为啥删除 UITableView 行时会出现错误?

为啥这个字符会出现分段错误?

为啥会出现此资源找不到错误消息?