web-dev-qa-db-fra.com

ORA-01017: nom d'utilisateur / mot de passe non valide; connexion refusée

Il y avait d'autres questions similaires posées, mais aucune qui ne pouvait me dire pourquoi je ne peux pas me connecter en utilisant un site Web C # .NET, je me suis levé. Bien que je sache que ce forum est plus destiné aux administrateurs de bases de données se connectant à des bases de données à l'aide d'outils et non pas tant à dépanner des applications se connectant, j'ai pensé que je pourrais essayer de poster la question ici.

Le site Web fonctionne/se connecte à partir de mon poste de travail lorsqu'il est exécuté à partir de Visual Studio, mais lorsque je le publie sur le serveur, il me donne ORA-01017: invalid username/password;logon denied erreur, même si je peux me connecter via tout le reste avec le même compte/mot de passe. Situation:

  1. Je peux me connecter en utilisant Oracle SQL Developer, SQL * Plus très bien avec le compte que j'utilise ... appelons-le "myaccount".
  2. En utilisant Net Manager, je peux développer "Service Naming" et voir les entrées de mon tnsnames.ora.
    une. La même chaîne qui existe dans la zone tnsnames.ora/Service Naming, existe en tant que chaîne codée en dur dans mon application, à l'exception de choses comme le nom d'hôte, le nom du service, le port, le nom d'utilisateur et le mot de passe, qui sont passés- en tant que paramètres de mon web.config.
    b. Je peux cliquer sur un nom de connexion et tout apparaît correctement, et en cliquant sur "Test Service"> "Changer de connexion"> entrez "mon compte" et mot de passe> cliquez sur OK> cliquez sur "Test" réussit.
    c. J'ai revérifié mes paramètres dans mon web.config - rien n'a changé depuis que le site Web a fonctionné sur mon poste de travail local.
  3. tnsping CONNECTION_NAME réussit.
  4. Les variables d'environnement sont les mêmes sur les deux ordinateurs, tout comme les emplacements des clients Oracle.
    une. Oracle_HOME = C:\Oracle\product\12
    b. PATH = C:\Oracle\product\12\bin; .....
    c. TNS_ADMIN = C:\Oracle\product\12\network\admin
    ré. Entrée de registre ajoutée à HKLM\Software\Oracle\KEY_OraClient12Home pour TNS_ADMIN = C:\Oracle\product\12\network\admin
  5. J'ai essayé le ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE; commande et réinitialiser le mot de passe, juste au cas où c'était le problème. J'ai essayé de me connecter avec les versions majuscules de mon compte et de son mot de passe, ainsi qu'avec toutes les versions minuscules des deux (les minuscules des deux sont comme je l'avais à l'origine quand cela fonctionnait sur mon poste de travail).
  6. Le compte a un PASSWORD_VERSIONS de 10G et 11G - Je ne sais pas s'il est important que j'utilise un client 12c et 12C n'est pas là. La principale différence entre le serveur et mon poste de travail est que je n'ai que le client 12c sur le serveur - j'ai 10g, 11g et 12c sur mon poste de travail. J'allais essayer d'utiliser l'assemblage ODP.NET 11g, Oracle.DataAccess.dll, mais mon code ne se compile pas (j'obtiens "Could not load file or Assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format.".), même après avoir changé l'espace de noms de using Oracle.ManagedDataAccess.Client à using Oracle.DataAccess.Client.
  7. Tentative de transmission du mot de passe avec des guillemets et sans - les deux méthodes ont fonctionné sur mon instance de Visual Studio, mais pas sur le serveur.
  8. Si je mets délibérément un mot de passe totalement faux et que je lance le site sur le serveur suffisamment de fois, il verrouillera le compte, donc je sais qu'il se connecte à la base de données.

À court de choses à essayer ... toute aide/suggestion serait appréciée.

5
vapcguy

Je n'ai vu cela qu'une seule fois jusqu'à présent, mais il y a un problème décrit dans la note My Oracle Suppport:

L'utilisation de FIPS provoque ORA-01017: nom d'utilisateur/mot de passe non valide avec ODP.NET géré (Doc ID 1937500.1)

Je ne publierai pas le contenu complet de ce document car il n'est pas public, mais voici l'essentiel:

Ce bogue a été corrigé dans le fournisseur géré 12.1.0.2. Veuillez noter que la version DB doit être 12.1.0.2 ou supérieure pour que ce correctif fonctionne comme prévu.

La solution de contournement consiste à définir dans le registre System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Enabled à 0.

Quelques références publiques à ce sujet:

https://stackoverflow.com/questions/26410951/Oracle-manageddataaccess-and-ora-01017-invalid-username-password-logon-denied

https://stackoverflow.com/questions/31785650/ora-01005-error-connecting-with-odp-net

https://community.Oracle.com/thread/2557592?start=0&tstart=

5
Balazs Papp

J'essayais avec la commande:

ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;

Mais ça n'a pas marché. J'ai dû le changer en utilisant le développeur SQL dans l'onglet DBA.

  1. Trouvez le paramètre 'sec_case_sensitive_logon' et changez sa valeur en 'FALSE' enter image description here
  2. Validez vos modifications à l'aide du bouton: enter image description here
  3. Il demandera la stratégie de validation et vous devrez choisir les deux: enter image description here
  4. Cliquez sur "Appliquer"
  5. Je ne sais pas si cette étape est requise, mais j'ai également changé le mot de passe de l'utilisateur. (J'ai défini le même mot de passe)

Dans le cas, vous ne savez pas comment ouvrir les 'Paramètres d'initialisation':

  1. Ouvrez 'Oracle SQL Developer'
  2. Allez dans le menu 'Affichage' et sélectionnez 'DBA'
  3. Choisissez une connexion
  4. Et puis cliquez sur "Paramètres d'initialisation"

enter image description here

0
Giovanny Farto M.