新建sql注册提示无法打开用户默认数据库 登录失败,怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新建sql注册提示无法打开用户默认数据库 登录失败,怎么解决相关的知识,希望对你有一定的参考价值。

新建sql注册提示无法打开用户默认数据库 登录失败,怎么回事
不是本机,是远程,现在用的就是sql验证,但是不行

参考技术A 检查数据库注册属性,如果是本机可以改为WINDOWS验证,如果不是改为SQL验证。

不行的话可能要重装一下SQL的连接工具

“无法打开用户默认数据库。登录失败。”安装 SQL Server Management Studio Express 后

【中文标题】“无法打开用户默认数据库。登录失败。”安装 SQL Server Management Studio Express 后【英文标题】:"Cannot open user default database. Login failed." after installing SQL Server Management Studio Express 【发布时间】:2012-01-21 15:52:05 【问题描述】:

我在一个程序使用的本地文件中有一个数据库。该程序功能有限,我需要运行一些快速查询。我安装了 SQL Server Management Studio Express 2005 (SSMSE),连接到 SQL Server 实例,附加数据库文件并运行查询。现在原程序将不再连接到数据库。我收到错误:

无法打开用户默认数据库。登录失败。用户“MyComputer\MyUserName”登录失败。

我已经回到 SSMSE 并尝试设置默认数据库。我已经打开了 Security、Logins、BUILTIN\AdministratorsBUILTIN\Users。在General下,我已将默认数据库设置为程序的数据库。在 User Mappings 下,我确保勾选了数据库并且勾选了 db_datareaderdb_datawriter

程序使用连接字符串:

服务器=(本地)\实例; AttachDbFilename=C:\PathToDatabase\Database.mdf;综合安全=真;用户实例=真;

我对数据库管理了如指掌。我还缺少什么?

【问题讨论】:

【参考方案1】:

这可能不是专门回答您的问题,但它可能会帮助其他人因不同问题引起的类似问题

在我的情况下,问题是我的用户被默认为一个由于任何原因无法访问的数据库(可以重命名、删除、损坏或...) 要解决此问题,请按照以下说明进行操作

    在登录页面上尝试再次登录还有其他选项卡选择 “连接属性”。

    在选项卡下找到“连接到数据库”并选择您有权访问的现有数据库,例如 tempdb 或 master

    连接到 SQL Server 实例后,执行以下 TSQL 为登录分配一个新的默认数据库。

    Use master
    GO
    
    ALTER LOGIN [yourloginname] WITH DEFAULT_DATABASE = TempDB
    GO
    

或者,一旦您连接,通过 UI 将默认数据库名称更改为 master

文章取自: http://www.mytechmantra.com/LearnSQLServer/Fix-cannot-open-user-default-database-Login-failed-Login-failed-for-user-SQL-Server-Error/

【讨论】:

感谢 kiarash,我也在:blog.sqlauthority.com/2008/11/04/… 找到了这个答案【参考方案2】:

首先,尝试隔离您的问题:

    备份文件!显然,在某些情况下,以下某些步骤可能会导致文件消失。 您确定通过 Management Studio 连接到与程序相同的实例吗? 如果可能,请尝试关闭您不希望使用的实例。 将用户的默认数据库设置为master并尝试使程序登录。 尝试通过 Management Studio 以用户身份登录 - 由于您已集成安全性,因此应以程序用户身份打开 Management Studio。 您是否在使用“用户实例”- 可能不知道?如果是这样,这可能会有所帮助:http://blogs.msdn.com/b/sqlexpress/archive/2006/11/22/connecting-to-sql-express-user-instances-in-management-studio.aspx

我没有对以您的程序方式附加的文件进行太多工作 - 但您写道,您也在 Management Studio 中附加了数据库。在运行程序之前,您是否尝试过将其分离?也许您看到 Management Studio 和您的程序竞争对 MDF 文件的独占访问权?

编辑:我在上面添加了第 6 点 - 这是在对此类登录失败进行故障排除时,我自己的 TODO 列表中的新内容。但这听起来确实很像您正在经历的。

EDIT2:在第一次编辑中,新项目被添加到列表中。所以 cmets 中的数字与答案中的数字不对应。

【讨论】:

所有用户现在都将默认数据库设置为“master”。使用 SSMSE,我使用集成安全性毫无问题地连接到“(本地)\Instance”,与程序完全相同。该程序仍然给出相同的错误消息。我什至专门为我创建了一个登录名,但仍然没有爱。 我尝试在 SSMSE 中分离数据库。原来“Detatch”是“Delete”的同义词,我的数据库消失在二进制以太中!谢天谢地,我有一个当前的备份。此外,备份没有被 SSMSE“损坏”,并且可以与应用程序一起使用。 第 5 点描述并解决了我未来的问题。非常感谢你的帮助!很遗憾我不能为此给你奖金。 哎哟。很高兴第 5 点有所帮助 - 很遗憾听到分离实际上杀死了文件。稍后会更新答案。 未来读者请注意:第 5 点已更改为第 6 点。“用户实例”是问题的根源。【参考方案3】:

当我将默认数据库脱机时,这个问题就出现了。接下来我知道我无法登录。切换到“连接属性”选项卡并选择下拉菜单以更改我要连接的数据库也失败了。

一旦我手动输入 master 作为我想要连接的数据库(在“连接属性”选项卡上),它就会立即让我进入。

【讨论】:

【参考方案4】:

我终于明白了这一点,我的情况与我今晚读到的其他人都不同。

我已经从备份中恢复了我的数据库。我知道我一直在使用一个特定的登录用户,所以我在 SSMS 中创建了该用户。但是,备份中的数据库下已经有一个同名的用户。

由于我费尽心思试图解决这个问题,我无法轻松删除数据库下的用户。我删除了数据库并再次恢复。那么:

    删除数据库下的用户->[我的数据库]->用户 在 Security->Logins 中再次创建用户(不在您的 DB 下,尽管这可能也可以。 转到新创建的用户。选择属性。然后在用户映射下,告诉它使您的数据库成为默认值。授予它读写权限。

总结:我有两个用户。一个是数据库附带的,一个是我创建的。删除数据库附带的那个并创建自己的。

【讨论】:

【参考方案5】:

首先点击“连接服务器”提示的选项>>按钮。

现在将连接数据库更改为服务器上的任何现有数据库,例如 master 或 msdb。

更多详情

https://blog.sqlauthority.com/2008/11/04/sql-server-fix-error-4064-cannot-open-user-default-database-login-failed-login-failed-for-user/

【讨论】:

【参考方案6】:

我也遇到过同样的问题,原来我试图访问内置的成员资格类(在视图中),而 .Net 试图在 App_Data 文件夹中创建数据库:

@Membership.GetUser().ProviderUserKey

这将触发系统尝试创建基于内置会员系统的数据库,这可能不是您系统的设置方式。

【讨论】:

【参考方案7】:

我遇到了类似的问题,我只需要下载能够启动用户实例的 SQL Express 实用程序。 SSEUtil 是由 Visual Studio 团队编写的用于帮助解决用户实例问题的工具,您可以在随实用程序一起安装的自述文件中阅读有关它的更多信息。 http://www.microsoft.com/downloads/details.aspx?FamilyID=fa87e828-173f-472e-a85c-27ed01cf6b02&DisplayLang=en.

希望这会有所帮助。

【讨论】:

【参考方案8】:

就我而言,我必须设置“连接到任何数据库”的正确路径:

在您的实例上,转到 Security ,然后转到 Logins

右击那里,你会看到properties,你应该点击Securables

它可以连接到任何数据库。

【讨论】:

以上是关于新建sql注册提示无法打开用户默认数据库 登录失败,怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

无法打开用户默认数据库。登陆失败。 用户SA登陆失败(SQL 错误4064) 怎么解决啊

IIS的网站提示数据库用户ASPNET登录失败?

我用sql server 2008 management studio 连接 sql server 2005, 提示4064错误,请问如何解决?

无法打开用户默认数据库.登录失败.怎么解决

在sql server 2000上用sa登录sql查询分析器的时候报错:无法打开用户默认数据库

SQL server2000 windows身份验证失败怎么办