SQLServer难以接受的安全策略
最近,一个客户通过sqlserver客户端ssms本地登录数据库实例,发现登陆不了。经过询问,他计划重新导入sqlserver数据库内的一个实例,于是将一个业务数据库删除掉,为了彻底释放资源,他还重启了主机。但是,主机重启之后,发现再也无法通过ssms本地登录数据库了。排查之后,发现他删除的业务数据库是sa管理账号登陆的默认数据库,由于sa管理员账号默认数据库被更改,并且sa登陆的默认数据库被删除,导致sa账号无法无法通过本地登录。当然,ssms本地windows认证都无法登陆,其他远程方式更无法登陆。
一、问题现象
客户反馈sqlserver无法通过ssms以windows或者用户密码方式登陆。
二、问题分析
查看操作系统日志,明确提示sa登陆默认数据库失败,默认数据库认证失败。
简单询问之下,是为了重新导入一份业务数据库,删除了一个业务数据库并且重启了数据库服务器。查看网上重置sa的登陆默认数据库如下图,但是,客户版本是sqlserver2012版本,针对此版本微软已经做了安全认证的加强,下图的sa默认登陆数据库方法已经失效无法使用,经过证实,此方法确实无法重置sa账号的默认登陆数据库。
到此,该sqlserver实例无法windows认证本地登录,也无法远程登陆sa,并且没有其他具有管理权限的用户,意味着该实例彻底报废。
三、总结
经过该事例,发现微软sqlserver具有严重的缺陷,不像oracle,只要实例open状态下,就可以通过sqlplus本地登录;也不像mysql,在丢失root管理密码时,可以有参数调整实例绕过安全认证登陆;更不像mongodb,丢失管理用户认证信息时,可以以非认证模式启动进行调整。像本次事例,辛亏只是一个测试数据库,如果是生产数据库,后果将难以想象,仅仅删除的是业务数据库,sa就无法登陆,其他业务数据库将无法管理,重建数据库实例势必面临长时间停机,对业务造成巨大的影响。
版权声明
本文仅代表作者观点,不代表博信信息网立场。