Управляемый клиент Oracle с опциями расширенной безопасности Oracle

14 октября Oracle выпустила последнюю версию своего Oracle Managed Client, которая была описана для поддержки сетевого шифрования данных.

http://www.oracle.com/technetwork/topics/dotnet/tech-info/odac12cr4ds-2704217.pdf https://www.nuget.org/packages/Oracle.ManagedDataAccess/

Хотя по какой-то причине после попытки множественной конфигурации мы все равно не смогли заставить ее работать. Мы продолжаем получать печально известную ORA-12570: Network Session: Unexpected packet read error исключение, заключенное в The provider did not return a ProviderManifestToken string, Ошибка в журнале предупреждений заключается в следующем TNS-12599: TNS:cryptographic checksum mismatch

Мы подтвердили администратору базы данных, что мы используем поддерживаемый алгоритм шифрования.

На данный момент, мои единственные дополнительные настройки следующие:

  <settings>
    <setting name="SQLNET.AUTHENTICATION_SERVICES" value="NTS" />
    <setting name="NAMES.DIRECTORY_PATH" value="LDAP,tnsnames" />
  </settings>

1 ответ

Решение

РЕДАКТИРОВАТЬ: Обновление до ODP.NET Managed 12.2 или более поздней версии. Поддержка алгоритмов целостности данных была представлена ​​там: https://docs.oracle.com/cd/E85694_01/ODPNT/featConnecting.htm

ODP.NET, Managed Driver 12.1 и более ранние версии еще не поддерживали алгоритмы целостности данных:

http://docs.oracle.com/cd/E63277_01/win.121/e63268/featConnecting.htm

Это приводит к тому, что TNS-12599: TNS: ошибка несоответствия криптографической контрольной суммы в журнале предупреждений базы данных, что, в свою очередь, приводит к различным ошибкам на стороне клиента, таким как ORA-12570: Сетевой сеанс: непредвиденная ошибка чтения пакета или ORA-12537: Сетевой сеанс: Конец файл.

Если вы вынуждены использовать версию 12.1, управляемую ODP.NET, и не можете выполнить обновление до 12.2 или более поздней версии, это можно исправить, изменив параметры SQLNET.ORA на стороне базы данных, чтобы контрольные суммы НЕ ТРЕБУЮТСЯ:

sqlnet.crypto_checksum_client = ПРИНЯТО

sqlnet.crypto_checksum_server = ПРИНЯТО

Другие вопросы по тегам