还原SQLServer2008数据库报用户无法登录 .

在一台新的服务器上还原mssql2008r2数据库后,原来数据库中的账户无法用来打开这台新还原的数据库,
报错:登录失败 错误代码:4064。


分析原因
在备份数据库的时候,服务器引擎中的安全->登录 中的用户在还原的时候并没有跟过来,导致登录设置降级,图1


解决的方法

步骤1 将原来数据库中的那个用户换个名字(随便什么,只要没有与其他名字冲突即可),图2

步骤2 在数据库引擎的安全->登录 中创建一个新用户,图3

步骤3 在UserMapping中, 映射该用户到指定的数据库中,图4

步骤4 此时,在还原数据库中,系统将自动创建一个用户,图5



出现这个错误的的一般原因:
1、误删除了默认的数据库。
2、该默认的数据库在还原数据库时,使用了另外物理路径来备份的数据库进行还原,可能会出现上面的错误。



网上的一个解决方案,还没有经过测试证伪:
SQL Server 2008用户打开CMD命令提示符,
其中,sqlcmd位于C:Program FilesMicrosoft SQL Server100ToolsBinn
使用以下命令:
    
    SQL帐户登录方式: >sqlcmd -U"密码" -P"jtydl" -d"master" -Q"exec sp_defaultdb N'sa', N'master'"
    Windows验证登录方式: >sqlcmd -E -d"master" -Q"exec sp_defaultdb N'BUILTIN/Administrators', N'master'"

原文地址:https://www.cnblogs.com/firstdream/p/5972820.html