2008-12-18 7 views
20

J'ai une ancienne application VB6 dont j'ai hérité. La question que je suis face est que je reçois leORA-12638: La récupération des informations d'identification a échoué

infâme
ORA-12638: Credential retrieval failed 

message d'erreur chaque fois qu'il essaie de se connecter à l'une de nos bases de données Oracle. Cependant, je peux me connecter à partir de SQLPlus et de Toad. J'ai googlé autour et tout le monde semble dire que modifier leur fichier sqlnet.ora à

SQLNET.AUTHENTICATION_SERVICES=(NONE) 

fait l'affaire. Je n'ai pas encore trouvé quelqu'un avec une solution alternative. Voici à quoi ressemble ma chaîne de connexion:

"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;" 

Comme pour mon code VB, c'est assez simple.

Private oracleDatabaseConnection As ADODB.Connection 

Set oracleDatabaseConnection = New ADODB.Connection 
oracleDatabaseConnection.Open oracleConnectionString 

Vous avez des idées?

Merci. :)

Répondre

4

Honnêtement c'est une de ces erreurs qui peuvent être causées par beaucoup de différents problèmes de racine. Dans l'hypothèse où votre serveur de base de données est Windows, vérifiez son journal des événements, système et application. Vous pouvez y trouver quelque chose d'utile.

J'ai rencontré cette erreur dans certains cas, car le compte sous lequel le service Oracle était en cours d'exécution a été verrouillé.

Je l'ai également rencontré dans les cas où nous n'avons jamais trouvé l'explication, mais nous avons toujours pu résoudre le problème en demandant à l'utilisateur de verrouiller et déverrouiller son PC.

L'application VB s'exécute-t-elle sur une machine différente de celle du client pouvant se connecter? Si oui, est-il possible de tester en utilisant un programme client différent sur la même machine - ou est-il possible d'essayer l'application VB sur votre machine?

+0

Je viens de rencontrer le problème pour la première fois et le verrouillage/déverrouillage a fait l'affaire. Je travaillais avec une machine virtuelle Windows XP que j'ai reprise du mode hibernation. L'hôte sur lequel il s'exécutait récemment demandait un changement de mot de passe, ce qui pouvait être la raison (bien que la machine virtuelle utilise un autre compte utilisateur dans un réseau différent) –

1

Si vous exécutez une application Web sous IIS, le redémarrage d'IIS semble utile. Mais ceci est l'un des problèmes d'un problème qui n'a pas beaucoup de raison d'être.

32

Je sais que c'est un poste très vieux mais j'ai trouvé une solution qui a fonctionné pour moi (ancien VB6 Application):

Modifier l'entrée suivante dans le fichier sqlnet.ora:

Original Entry - SQLNET.AUTHENTICATION_SERVICES= (NTS) 

Modified Entry - SQLNET.AUTHENTICATION_SERVICES= (NONE) 

Voici un LINK à la solution

+1

SQLNET.AUTHENTICATION_SERVICES = (NONE) a fonctionné comme un charme –

+2

+1 J'ai juste enlevé la ligne 'SQLNET.AUTHENTICATION_SERVICES' du fichier et cela a fonctionné aussi – Neolisk

+0

J'ai obtenu ORA-01031: privilèges insuffisants après avoir réglé AUCUN – cgalvao1993

Questions connexes