SQL 2012 使用子账号xxx登陆报错无法打开用户默认数据库。登陆失败。错误:4064

问题描述:SQL 2012 使用子账号xxx登陆报错无法打开用户默认数据库。登陆失败。错误:4064

在这里插入图片描述

排查过程:

1、使用windows身份验证及sa子用户均可正常登录
2、主备集群环境,当前主机登录异常,在备机上使用同一子用户xxx登录正常
3、主机上查看子用户xxx属性,已正常关联默认数据库
4、查看日志报错无法打开在登录名属性中指定的数据库,因此怀疑权限不足
在这里插入图片描述
5、查看用户登录属性,在用户映射中发现默认数据库未正常映射,手动添加映射则报错子用户已存在
在这里插入图片描述

故障原因:权限不足

现场使用的软件A默认使用sa账号进行登入数据库,而现场基于非标功能创建了子账号使用。而现场软件A集群切换同步数据库时默认不会同步数据库子账号的关联权限,进而子账号变成了孤立账号的情况,无法登入数据库

解决方案:

执行下述命令

Use 数据库名
go
sp_change_users_login 'update_one', '用户名', '用户名'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值