使用Oracle高级安全性选项管理Oracle客户端
10月14日,Oracle发布了被称为支持网络数据加密的Oracle Managed Client的最新版本。
On October 14th, Oracle release the latest version of their Oracle Managed Client which was described to support Network Data Encryption.
http://www.oracle.com/technetwork/topics/dotnet/tech-info/odac12cr4ds- 2704217.pdf
https://www.nuget.org/packages /Oracle.ManagedDataAccess/
尽管由于某些原因,在尝试多次配置后,我们仍然无法使其正常工作。我们不断得到臭名昭着的 ORA-12570:网络会话:意外的数据包读取错误
包装在中的提供程序未提供ProviderManifestToken字符串
。警报日志中的错误是以下 TNS-12599:TNS:加密校验和不匹配
Although for some reason after trying multiple configuration, we still weren't able to get it to work. We keep getting the infamous ORA-12570: Network Session: Unexpected packet read error
exception wrapped in The provider did not return a ProviderManifestToken string
. The error in the alert log is the following TNS-12599: TNS:cryptographic checksum mismatch
我们确认我们正在使用支持的加密算法的DBA。
We did confirm with the DBA that we were using the supported encryption algorithm.
此时,我唯一的附加设置如下:
At this point, my only additional settings are the following:
<settings>
<setting name="SQLNET.AUTHENTICATION_SERVICES" value="NTS" />
<setting name="NAMES.DIRECTORY_PATH" value="LDAP,tnsnames" />
</settings>
ODP.NET,托管驱动程序尚不支持数据完整性算法:
ODP.NET, Managed Driver does not yet support data integrity algorithms:
http://docs.oracle.com/cd/E63277_01/win.121/e63268/featConnecting.htm#CJAGFFCA
这个导致数据库警报日志中的TNS-12599:TNS:加密校验和不匹配错误,从而导致诸如ORA-12570之间的各种客户端错误:网络会话:意外的数据包读取错误或ORA-12537:网络会话:文件结束
This leads to the TNS-12599: TNS:cryptographic checksum mismatch error in your database alert log which in turn causes various client side errors such as ORA-12570: Network Session: Unexpected packet read error or ORA-12537: Network Session: End of file.
这可以通过更改数据库端SQLNET.ORA参数来修复,这样校验和不需要:
This can be fixed by changing database side SQLNET.ORA parameters, such that checksums are not REQUIRED:
sqlnet.crypto_checksum_client = ACCEPTED
sqlnet.crypto_checksum_client = ACCEPTED
sqlnet.crypto_checksum_server = ACCEPTED
sqlnet.crypto_checksum_server = ACCEPTED
(这个答案是在12.1期间提供的。 0.2时间段,随着时间的流逝,您应该检查一下是否有新的版本支持这个功能)
(This answer was provided during the 12.1.0.2 timeframe. As time passes, you should check to see if a newer release supports this feature)