sql server back restore - 登录失败

时间:2013-04-11 08:32:53

标签: sql-server sql-server-2008-r2 production-environment

我在sql server 2008 R2上有一个本地数据库,工作正常,

我的托管安装了sql server 2012。在托管服务器上创建一个新的数据库后,我可以使用给定的托管凭证轻松连接到空白数据库

我已经创建了Sql Server 2008备份并将其恢复到托管,并且每次都停止工作。

Cannot open database "dbName" requested by the login. The login failed.

在创建备份之前,我确实创建了一个新用户,其使用与托管所提供的相同的凭证来连接他们的数据库。

很少有解决方案建议运行孤立用户查询但无法连接到数据库

http://sqlblog.com/blogs/eric_johnson/archive/2008/10/17/fixing-orphaned-users.aspx

2 个答案:

答案 0 :(得分:2)

在执行备份和恢复时,它是由孤儿用户创建的

首先,确保这是问题所在。这将列出孤立用户:

  

EXEC sp_change_users_login'Report'

如果您已拥有此用户的登录ID和密码,请执行以下操作进行修复:

  

EXEC sp_change_users_login'Auto_Fix','user'

如果要为此用户创建新的登录ID和密码,请执行以下操作进行修复:

  

EXEC sp_change_users_login'Auto_Fix','user','login','password'

另一种方法对我有用

a busy cat http://www.pinaldave.com/bimg/error4064_1.jpg

a busy cat http://www.pinaldave.com/bimg/error4064_2.jpg

确保将[test]替换为您的用户名和master以及您的数据库名称

a busy cat http://www.pinaldave.com/bimg/error4064_3.jpg

答案 1 :(得分:0)

用于还原数据库的帐户应具有足够高的权限,以便修复登录用户链接。如果该登录名为您提供上述错误,则登录的默认数据库很可能设置为您刚恢复的数据库。在这种情况下,您可以使用SSMS“连接到数据库引擎”对话框中的“选项”按钮,并在“连接属性”选项卡的“连接到数据库”字段中选择其他数据库。

Connect to Database Engine

enter image description here

如果您使用的是需要连接字符串的其他工具,您也可以在那里明确指定数据库。

连接后,请按照您链接的文章中的建议进行操作。