问题描述:SQL 2012 使用子账号xxx登陆报错无法打开用户默认数据库。登陆失败。错误:4064
排查过程:
1、使用windows身份验证及sa子用户均可正常登录
2、主备集群环境,当前主机登录异常,在备机上使用同一子用户xxx登录正常
3、主机上查看子用户xxx属性,已正常关联默认数据库
4、查看日志报错无法打开在登录名属性中指定的数据库,因此怀疑权限不足
5、查看用户登录属性,在用户映射中发现默认数据库未正常映射,手动添加映射则报错子用户已存在
故障原因:权限不足
现场使用的软件A默认使用sa账号进行登入数据库,而现场基于非标功能创建了子账号使用。而现场软件A集群切换同步数据库时默认不会同步数据库子账号的关联权限,进而子账号变成了孤立账号的情况,无法登入数据库
解决方案:
执行下述命令
Use 数据库名
go
sp_change_users_login 'update_one', '用户名', '用户名'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)