06-"Login failed for user 'NT AUTHORITY\SYSTEM'. 原因: 无法打开明确指定的数据库。[客户端:<local machine>]"异常处理
1、错误描述
今天公司SQLServer服务器报出好多登录失败的错误,并且刷的频率非常高,仔细看主要就是2个错误,如下:
(1)Login failed for user 'NT AUTHORITY\SYSTEM '。原因:无法打开明确指定的数据库。[客户端:<local machine>]
(2)Login failed for user 'sa '。原因:无法打开明确指定的数据库。[客户端:<10.xx.xx.xx>]
数据库的版本如下:
2、错误原因
(1)出现这2个登录失败的问题,都是程序登录数据库导致,和数据库本身没什么关系,并且和数据库的补丁也没有关系;
(2)sa登录数据库失败,这个问题从数据库层面看,sa用户本身是没有问题的,并且该实例下的数据库都是online状态,sa是sysadmin权限,是可以访问该实例下的任何数据库的,所以即使不配置数据库映射,也是没问题的;
3、解决办法
(1)NT AUTHORITY\SYSTEM 登录失败,可以先禁用,看本地是否有部署什么程序会报错的,排查一下;
(2)出现这个问题,报出“无法打开明确指定的数据库”,需要排查这个远程访问数据库的服务器(也就是10.xx.xx.xx)上配置的数据库连接,是否还有其他的连接,指定的数据库名称在该SQLServer实例上没有,或者以前有,后来删除的数据库配置;
果然,最后发现是有数据库迁移走了,但是程序里还在调用这个数据库名称,导致一直报这个错误;