为啥会出现以下错误:“尝试附加到数据库失败,并显示以下信息:用户 '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 > Application Pools
并检查DefaultAppPool
是您的网站池名称。
打开 SQL Studio 管理器并确保已将 IIS APPPOOL\DefaultAppPool
添加为 security > Logins
下的数据库登录之一
3 在security > Logins > user mapping
确保您的数据库名称映射在IIS APPPOOL\DefaultAppPool
下
4.同样在security > Logins > user mapping
下-将权限设置为'db_owner'
【讨论】:
以上是关于为啥会出现以下错误:“尝试附加到数据库失败,并显示以下信息:用户 'x\x' 登录失败。?的主要内容,如果未能解决你的问题,请参考以下文章