我正在使用SQL Server2014。之前,我能够连接服务器数据库。但是无论如何,它停止了获取登录的权限,每当我尝试连接服务器数据库时,它都会显示错误消息,如下所示。
用户登录失败(Microsoft SQL Server,错误:4064)
任何帮助将不胜感激。
答案 0 :(得分:1)
错误:4064
select * from sys.messages where message_id = 4064
无法打开用户默认数据库。登录失败。
将默认数据库更改为master数据库或现有数据库。
答案 1 :(得分:1)
当Windows或SQL Server登录名无法连接到分配给用户的默认数据库时,您可能最终会收到此错误。 要解决该错误,请执行以下步骤。
首先单击“连接到服务器”提示中的选项>>按钮。
现在将连接数据库更改为您的任何现有数据库 tempdb,msdb或master之类的服务器
现在单击连接,它将成功登录您。
一旦连接到SQL Server实例,请执行以下TSQL为登录名分配一个新的默认数据库。
Use master
GO
ALTER LOGIN [MonitorDB] WITH DEFAULT_DATABASE = TempDB
GO
答案 2 :(得分:1)
某些数据库用户默认删除数据库时会发生此错误。当用户尝试登录并删除其默认数据库时,将显示SQL错误4064。
要解决此问题,请连接到
SQL Server->单击选项 ->将连接到数据库更改为现有数据库
并运行以下命令:
ALTER LOGIN [xyz] WITH DEFAULT_DATABASE = master
GO
用您的用户名替换xyz,并用您的数据库名称替换master。
答案 3 :(得分:0)
我把它放在这里,以防其他人偶然发现。就我而言,需要打开SQL Profiler来查看发生了什么。我在程序的连接字符串中指定的与数据库服务器的连接工作正常。但是该查询与另一个链接的SQL Server上的表(由四部分组成的名称)联接在一起,并且删除了REMOTE服务器上的默认数据库。