【问题标题】:sql db problem with windows authenticationWindows身份验证的sql db问题
【发布时间】:2010-05-31 13:06:59
【问题描述】:

有一个我连接到 Windows 身份验证的 SQL Server 2008 数据库 .. 已经运行了 7-8 个月 .. 但是现在当我今天开始工作时,它不再能够连接,否则我已经做了一些事情 错误信息是:

无法打开用户默认数据库。登录失败。 用户“Jimmy-PC \ Jimmy”登录失败。

其中第一个是计算机名称,第二个是用户。问题似乎是它试图连接到默认数据库。已尝试更改但没有成功..我没有用于sql 2008的sql server管理工具,但只有2005,有类似经验的人吗?周末没有碰任何东西的人,上周五工作没有任何问题。

【问题讨论】:

    标签: sql sql-server sql-server-2008 windows-authentication


    【解决方案1】:

    用户的默认数据库处于脱机状态。自昨天以来发生的变化是您的数据库出于某种原因失败了。

    您需要使用没有默认数据库的其他帐户登录,并检查数据库的状态。如果您没有这样的帐户,则可以使用管理员帐户。如果管理员组未被授予登录 SQL Server 的权限,请参阅这篇文章 Troubleshooting: Connecting to SQL Server When System Administrators Are Locked Out

    一旦您可以登录,您唯一需要的工具就是sqlcmd.exe,它安装在您的机器上。查看sys.databases,state_desc 列将告知数据库是否处于脱机状态。你可以尝试ALTER DATABASE ... SET ONLINE 看看它是否能恢复,但这不太可能。您最好的选择是应用您的灾难恢复计划并从您为其保留的备份中恢复数据库。

    【讨论】:

    • 我无法访问任何帐户,我只认为我有 1...也许如果我从 sqlcmd 创建一个新帐户,但我不知道该怎么做。另外..我无法使用我的 sql server 管理工具管理我的数据库,因为它们适用于 sql server 2005 及更早版本.. 无法找到 2008 年的正确通行费...从其目录中删除数据库并放入备份.. 但是问题仍然存在。
    【解决方案2】:

    奇怪的是它刚刚停止工作。你检查过用户默认数据库的状态吗?确保数据库存在并且在线。

    要查找用户的默认数据库,请使用 sqlcmd.exe 运行以下命令

    select dbname from syslogins where name = 'Jimmy-PC \ Jimmy'
    

    我在恢复系统并且用户的默认数据库尚未恢复时以及另一个数据库处于“恢复”模式时看到此错误。

    我还要确保 windows 帐户没有被禁用。

    如果你发现需要改变用户的默认数据库可以使用T-SQL命令,看下面的问题:

    How do I set the default database in Sql Server from code?

    【讨论】:

    • 首先,如果默认是什么数据库呢?而且..我无法使用 sql server 管理工具连接到任何数据库。它说它只处理 2000 和 2005 数据库.. 我无法找到如何在 2008 版本中模拟...我不使用任何登录到 Windows 我只有 1 个帐户因此它不应该是
    • @Jimmy,我已将 sql 添加到我的答案中以查找用户的默认数据库。找到用户的默认数据库后,请按照 @Remus Rusanu 的建议确定数据库状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多