我在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
答案 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以及您的数据库名称
答案 1 :(得分:0)
用于还原数据库的帐户应具有足够高的权限,以便修复登录用户链接。如果该登录名为您提供上述错误,则登录的默认数据库很可能设置为您刚恢复的数据库。在这种情况下,您可以使用SSMS“连接到数据库引擎”对话框中的“选项”按钮,并在“连接属性”选项卡的“连接到数据库”字段中选择其他数据库。
如果您使用的是需要连接字符串的其他工具,您也可以在那里明确指定数据库。
连接后,请按照您链接的文章中的建议进行操作。