Connection authorization failure occurred. Reason: Local security service non-retryable error解决方案

以上的异常是我在连接DB2的时候出现的,很奇怪,因为DB2用了这么长时间从来没出现过这个问题,单从异常消息来看,很明显是DB2连接时验证失败了,说白了用户名和密码的问题,问题是为什么会出现这样的问题,明明用户名和密码是正确的。
研究之后发现是系统差异,密码不可能以明文方式存储在系统中,都是通过相应的加密算法之后保存的,DB2采用的是SHA256加密,而不少高版本的Linux默认的加密算法已经是SHA512了,这样系统创建的DB2用户密码通过SHA512保存在系统中,连接时DB2通过SHA256将密码加密后与保存在系统中的密码比对,结果当然是失败,解决方案如下:
打开/etc/pam.d/system-auth文件,找到第二行passwd配置,将sha512改成sha256,保存;
重新运行passwd db2用户,设置密码;
成功;
这样将系统的加密方式换成sha256再更新一下保存的密码就可以了。

你可能感兴趣的:(Linux)