1、SQL Sever无法打开用户默认数据库 的解决方案 本页 · 症状 · 原因 · 替代方法 o SQL Server 2005 o SQL Server 2000 和 SQL Server 7.0 · 状态 · 更多信息 展开全部 | 关闭全部 症状 每位用户都有一个默认的数据库。当您连接到运行 Microsoft SQL Server 的计算机时,如果未指定登录数据库,则将使用默认的数据库。但是,如果默认数... 每位用户都有一个默认的数据库。当您连接到运行 Microsoft SQL Server 的计算机时,如果未指定登录数据库,则将使用默认
2、的数据库。但是,如果默认数据库在连接时不可用,则可能无法进行连接。并且,您将收到错误消息 4062 或错误消息 4064。这些错误消息的原文如下所示: 无法打开用户默认数据库 回到顶端 原因 用户默认数据库在连接时不可用。这可能是因为该数据库: 处于可疑模式。 不再存在。 处于单用户模式,并且唯一可用的连接已由其他用户或事物使用。 已被分离。 已设置... 用户默认数据库在连接时不可用。这可能是因为该数据库: · 处于可疑模式。 · 不再存在。 · 处于单用户模式,并且唯一可用的连接已由其他用户或事物使用。 · 已被分离。 · 已设置为 RESTRICTED
3、USER 状态。 · 处于脱机状态。 · 设置为紧急状态。 · 不具有映射到用户的登录帐户,或者该用户已被拒绝访问。 此外,该登录帐户可能是多个组的成员,且其中一个组的默认数据库在连接时不可用。 回到顶端 替代方法 要解决此问题,请在连接字符串中指定一个有效的可用数据库。要避免在用户的默认数据库不可用时出现错误,请以能够修改登录的用户身份登录。然后,将用户的默认数据库更改为... 要解决此问题,请在连接字符串中指定一个有效的可用数据库。要避免在用户的默认数据库不可用时出现错误,请以能够修改登录的用户身份登录。然后,将用户的默认数据库更改为当前可供连接使用的数据库。
4、 回到顶端 SQL Server 2005 在 SQL Server 2005 中,可以使用 sqlcmd 实用程序更改默认数据库。为此,请按照下列步骤操作: 1. 单击“开始”,单击“运行”,键入 cmd,然后按 Enter。 2. 根据 SQL Server 登录使用的身份验证种类,请使用以下方法之一: o 如果 SQL Server 登录使用 Microsoft Windows 身份验证连接到该实例,请在命令提示符处键入以下内容,然后按 Enter: sqlcmd –E -S InstanceName –d master o 如果 SQL Server 登录使用
5、SQL Server 身份验证连接到该实例,请在命令提示符处键入以下内容,然后按 Enter: sqlcmd -S InstanceName -d master -U SQLLogin -P Password 3. 注意:InstanceName 是要连接到的 SQL Server 2005 实例的名称的占位符。SQLLogin 是已删除其默认数据库的 SQL Server 登录的占位符。Password 是 SQL Server 登录密码的占位符。 4. 在 sqlcmd 提示符处,键入以下内容,然后按 Enter: ALTER LOGIN SQLLogin WITH DEFA
6、ULT_DATABASE = AvailDBName 注意:AvailDBName 是可由实例中 SQL Server 登录访问的现有数据库的名称的占位符。 5. 在 sqlcmd 提示符处,键入 GO,然后按 Enter。 回到顶端 SQL Server 2000 和 SQL Server 7.0 在 SQL Server 2000 和 SQL Server 7.0 中,可以使用 osql 实用程序更改默认数据库。为此,请按照下列步骤操作: 1. 在命令提示符处,键入以下内容,然后按 Enter: C:\>osql -E 2. 在“osql”提示符处,键入以下内容,然
7、后按 Enter: 1>sp_defaultdb 'user's_login', 'master' 3. 在第二个提示符处,键入以下内容,然后按 Enter: 2>go 回到顶端 状态 这种现象是由设计造成的。 这种现象是由设计造成的。 回到顶端 更多信息 为阐述此现象,请尝试使用 OSQL 进行连接并对处于正常联机状态的现有数据库使用 -d 选项。连接将成功,且不会显示任何错误消息。与此相反,如果该数据库不可用,... 为阐述此现象,请尝试使用 OSQL 进行连接并对处于正常联机状态的现有数据库使用 -d 选项。连接将成功,且不会显示任何错误消息。 与
8、此相反,如果该数据库不可用,您将从各种 SQL Server 客户端实用程序收到类似以下内容的响应: · SQL Server Management Studio (SQL Server 2005) Cannot connect to ServerName ADDITIONAL INFORMATION: Cannot open user default database. Login failed. Login failed for user 'UserName'. (Microsoft SQL Server, Error:4064) · 使用 SQL Server 2005 中
9、的 Sqlcmd 实用程序 Msg 4064, Level 11, State 1, Server ServerName, Line 1 Cannot open user default database. Login failed. Msg 18456, Level 14, State 1, Server ServerName, Line 1 Login failed for user 'UserName'. · SQL Server 2000 查询分析器 (QA) Unable to connect to server TESTSERVER: Server: Msg 40
10、64, Level 16, State 1 [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open user default database. Login failed. · SQL Server 2000 Server 企业管理器 (SEM) A connection could not be established to TESTSERVER - Cannot open user default database 'dbid'. Using master database instead. Please ver
11、ify SQL Server is running and check your SQL Server registration properties (by right-clicking on the TESTSERVER node) and try again. · 使用 SQL Server 2000 OSQL 的命令提示符 当您使用“C:\>osql -E”命令时,将收到以下错误消息: Cannot open user default database. Login failed. · SQL Server 7.0 查询分析器 (QA) Unable to con
12、nect to server \\TESTSERVER:
Server: Msg 4062, Level 16, State 1
[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open user default database '






