Sql Server启用SSL证书服务后无法重启或者启动;“TDSSNIClient 初始化失败,出现错误 0x80092004,状态代码 0x80”“无法加载用户指定的证书 [Cert Hash(sha1) ”
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
前一篇文章写过,如何的给Sql SerVer服务器启用SSL证书服务- SQL Server如何启用ssl证书服务?SQL Server启用ssl证书的方式方法? 可能在重启的时候不能启动,这是为啥呢?我们就来说一下;
其实再启动或者重启的时候,一直提示无法启动,具体请看错误
然后进入进入日志查看一下,有几个错误;错误如下:
1、TDSSNIClient 初始化失败,出现错误 0x80092004,状态代码 0x80。原因: Unable to initialize SSL support. Cannot find object or property.
2、TDSSNIClient 初始化失败,出现错误 0x80092004,状态代码 0x1。原因: Initialization failed with an infrastructure error. Check for previous errors. Cannot find object or property.
3、由于网络库中存在内部错误,所以无法启动网络库。要确定原因,请查看错误日志中紧位于此错误之前的那些错误。
4、SQL Server 无法生成 FRunCommunicationsManager 线程。请查看 SQL Server 错误日志和 Windows 事件日志,获取有关可能发生的相关问题的信息。
出现了以上这么几个错误,事件ID为17182、17826、17120这么几个,从第一个里面就应该可以看出SSL,那就说明是证书的原因,到底啥原因呢?你百度去吧,不会有啥好的结果,甚至说都没啥可介绍的,简直都是引人误入歧途,就连上篇文章介绍如何开启sql server 都是五花八门的;
看上面的1、2两个错误后面的原因都是英文,其实以上就是找不到啥啥啥,由于sql server 开启强制协议加密,还能是啥啥啥,肯定是证书喽,那我们启用了,为啥还是找不到呢?可能的原因包括以下三种:
1、该证书可能已被移动或删除。
2、如果由 SQL Server 使用的登录名已发生更改,则 SQL Server 可能无权访问该证书。
3、该证书可能已过期。
按照思路走,以上三点肯定都不是,给予大脑皮层的又一反应,权限;那估计就是权限闹的,是根据2的启发来的,原因就是 SQL Server 可能无权访问该证书,这个是运行sql server实例的用户对证书的访问权限,我们现在操作一下权限;
具体操作如下:
需要在证书管理下,个人-证书,选择证书,右键所有任务-管理私钥。选择添加上运行sql server实例的用户。
PS:有的SQL SERVER是独立的用户运行,选择即可,如果自己没有设置过,直接给 Everyone 权限即可 选择 完全控制以及读取两个勾-具体看下图;
延伸阅读:
重启sql server实例一直失败,也可能直接提示“无法加载用户指定的证书 [Cert Hash(sha1) ”这个错误。
但是解决方式都是这篇文章即可;
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!