ORA-12638: Ошибка получения учетных данных
У меня есть унаследованное приложение VB6, которое я унаследовал. Проблема, с которой я сталкиваюсь, заключается в том, что я получаю печально известный
ORA-12638: Credential retrieval failed
когда он пытается подключиться к одной из наших баз данных Oracle. Однако я могу подключиться отлично от SQLPlus и Toad. Я Googled вокруг, и все, кажется, говорят, что изменение их файла sqlnet.ora на
SQLNET.AUTHENTICATION_SERVICES=(NONE)
сделал трюк. Мне еще предстоит найти кого-нибудь с альтернативным решением. Вот как выглядит моя строка подключения:
"PROVIDER=OraOLEDB.Oracle;DATA SOURCE=(DESCRIPTION = " & _
"(ADDRESS = (PROTOCOL = TCP)(HOST = server1)
(PORT = 1521))" & _
"(ADDRESS = (PROTOCOL = TCP)(HOST = server2)
(PORT = 1521))" & _
"(LOAD_BALANCE = yes) " & _
"(CONNECT_DATA = " & _
"(SERVER = DEDICATED) " & _
"(SERVICE_NAME = database_name_here) " & _
") " & _
"); " & _
"User Id=username_here;Password=password_here;"
Что касается моего кода VB, это довольно просто.
Private oracleDatabaseConnection As ADODB.Connection
Set oracleDatabaseConnection = New ADODB.Connection
oracleDatabaseConnection.Open oracleConnectionString
У кого-нибудь есть идеи?
Спасибо.:)
Ответы
Ответ 1
Честно говоря, это одна из тех ошибок, которые могут быть вызваны множеством различных проблем с корнем.
В предположении, что ваш сервер базы данных - это Windows, проверьте его журнал событий, как System, так и Application. Вы можете найти что-то полезное.
Я столкнулся с этой ошибкой в некоторых случаях, потому что учетная запись, под которой работает служба Oracle, заблокирована.
Я также столкнулся с этим в тех случаях, когда мы никогда не находили объяснений, но мы всегда были в состоянии решить эту проблему, заблокировав и разблокировав их ПК.
Работает ли приложение VB на другой машине, чем клиент, который может подключиться? Если да, можно ли тестировать с помощью другой клиентской программы на одном компьютере - или можно попробовать приложение VB на вашем компьютере?
Ответ 2
Я знаю, что это очень старое сообщение, но я нашел решение, которое сработало для меня (приложение Legacy VB6):
Измените следующую запись в файле sqlnet.ora:
Original Entry - SQLNET.AUTHENTICATION_SERVICES= (NTS)
Modified Entry - SQLNET.AUTHENTICATION_SERVICES= (NONE)
Вот LINK для решения
Ответ 3
Знайте, это старый вопрос, но он начал появляться с недавним обновлением Windows.
Способ легко решить это установить
SQLNET.AUTHENTICATION_SERVICES= (NONE)
в sqlnet.ora.
Ответ 4
Если вы используете веб-приложение под IIS, похоже, помогает перезагрузка IIS. Но это одна проблема, которая не имеет большого смысла.
Ответ 5
Я установил 32-разрядную версию Oracle Database 11g Express Edition на 64-разрядную версию Windows 10 Professional (на испанском языке).
После перезагрузки ПК все работает нормально.
Но на следующий день я получаю сообщение об ошибке при использовании SQL * PLus и SQLTools 1.9 build 15:
ORA-12638: Credential retrieval failed
Я изменил файл sqlnet.ora так:
SQLNET.AUTHENTICATION_SERVICES= (NONE)
и теперь я могу подключиться с помощью SQLPlus, SQLTools 1.9 build 15.