登录到SQL Server时出错

时间:2012-04-04 11:21:03

标签: sql-server-2008 login

当我想连接到SQL Server 2008时,我收到以下消息:

  

无法连接到服务器   附加信息:无法打开用户默认数据库。登录失败。用户'sa'登录失败。 (Microsoft SQL Server。错误:4064)

如何解决此错误?

3 个答案:

答案 0 :(得分:28)

当删除的数据库是某些数据库用户的默认数据库时,会发生此错误(Microsoft SQL Server.Error:4064)。

当用户尝试登录并删除其默认数据库时,会显示错误。

  

无法打开用户默认数据库。登录失败。用户登录失败   '用户名'。 (Microsoft SQL Server,错误:4064)

解决此问题的方法是here,总结如下。

登录的解决方案是:

  1. 连接到服务器对话框中,点击选项
  2. 连接到数据库:的值更改为服务器上的任何有效数据库
  3. 修复服务器的永久解决方案是运行SQL,如:

    ALTER LOGIN [test] WITH DEFAULT_DATABASE = master
    GO
    

答案 1 :(得分:2)

在我的情况下,这是由于用户是多个组的成员,每个组都有自己的登录。所有组的登录都需要将其默认数据库设置为用户可访问的数据库。

https://support.microsoft.com/en-us/kb/307864列出了其他可能的问题。

您可以使用无效的默认数据库设置每个登录,以使默认的master数据库(所有登录都可访问):

<!DOCTYPE html>
<html>
    <body>
        <p id="display"></p>
        <script>

        var i;
        for(i=0; i<11; i++){
            var disp = "the number is " + i;
            // This just writes to the javascript console
            console.log(disp);
            // This writes in the #display element on your page
            document.getElementById("display").innerHTML += disp + '<br>';
        }
        </script>
    </body>
</html>

答案 2 :(得分:0)

用户默认数据库在连接时不可用,以便弹出此错误消息.SO检查您标记给该特定用户的服务器,以便访问该服务器是在线还是离线模式。