一、问题现象
某国产化软件连接Oracle 11.2.0.4 db报错
DB alert报错
二、问题分析
2.1 数据库自身问题排查
--数据库服务器本地,本地连接 sqlplus xx/xx 正常连接 --数据库服务器本地,远程连接 sqlplus xx/xx@tns 和软件远程配置参数一致,正常连接 --其它数据库服务器本地,远程连接 db2$sqlplus xx/xx@tns 可以远程连接 并且让软件测试,连接db2可以正常连接???
复制
2.2 排查是否存在特殊配置
$ cat sqlnet.ora SQLNET.ENCRYPTION_SERVER = REQUIRED SQLNET.ENCRYPTION_TYPES_SERVER = RC4_256 SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED
复制
2.3 参数说明
SQLNET.ENCRYPTION_SERVER = REQUIRED 为数据库服务器打开加密。 accepted如果对方需要或要求启用安全服务。 rejected禁用安全服务,即使对方要求。 requested如果对方允许,则启用安全服务。 required如果对方未启用安全服务,则启用安全服务并禁止连接。 ENCRYPTION_TYPES_SERVER 指定要使用的数据库服务器的加密算法列表。 rc4_40对于 40 位密钥大小 rc4_56对于 56 位密钥大小 rc4_128对于 128 位密钥大小 rc4_256对于 256 位密钥大小 SQLNET.CRYPTO_CHECKSUM_SERVER 指定数据库服务器的校验和行为。 accepted如果对方需要或要求启用安全服务。 rejected禁用安全服务,即使对方要求。 requested如果对方允许,则启用安全服务。 required如果对方未启用安全服务,则启用安全服务并禁止连接。 https://docs.oracle.com/cd/E11882_01/network.112/e10835/sqlnet.htm#NETRF205 https://www.freebuf.com/articles/database/243180.html https://www.cnblogs.com/huiy/p/8964716.html
复制
2.4 MOS 类似的文章
Enabling Encryption and Checksum Gives Error 'TNS-12679: Native services disabled by other process but required' (Doc ID 2449537.1) Oracle Data Provider for .NET - Version 12.1.0.2 to 12.1.0.2 [Release 12.1] CHANGES Enabled encryption and checksum CAUSE Encryption and checksum is not enabled in ODP.Net 12.1.0.2 by default. SOLUTION For enabling encryption and checksum in ODP.Net 12.1.0.2, please install Patch 22809813.
复制
三、问题处理
1.根据Sqlnet.ora的参数转换理解+网上博客的参数配置,我们可以发现默认情况下client参数是accepted,就是如果服务器端是加密,那么就启用网络加密进行数据传输,否则就明文传输数据包,因此这种默认情况下,可以解释数据库服务器本地远程登陆自己,另一台数据库db2 sqlnet.ora也没有配置client参数,可以远程连接db1 网络加密了的远程连接; 那么正常的理解,应用也是可以正常访问DB的;
2.由于无法判断国产化的软件是如何远程连接Oracle db,正常都会配置一个oracle建议的客户端,由于国产软件厂商无法进行问题排查诊断,结合mos的文章怀疑是使用非sqlplus的远程连接方式,直接禁用DB层面网络加密,sqlnet参数注释后重启监听,国产化软件连接正常,pass
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。