Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-01017 Conseils de résolution des erreurs Oracle

ORA-01017 est l'une des erreurs courantes rencontrées lors de la connexion à la base de données oracle.

Voici ce que dit la documentation à propos de cette erreur

Voici la liste de contrôle à exécuter pour résoudre l'ORA-01017 :nom d'utilisateur/mot de passe invalide

(1)Le principal problème avec un ORA-01017 L'erreur est une combinaison d'ID utilisateur et de mots de passe non valide. Vous devez vous assurer que vous entrez le bon mot de passe

Dans le cas où le système cible est 11g, le mot de passe peut être sensible à la casse

Vous pouvez vérifier le paramètre dans le système

SQL> SHOW PARAMETER SEC_CASE_SENSITIVE_LOGON
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon             boolean     TRUE
SQL>

Lorsque le paramètre ci-dessus est défini sur true, la sensibilité à la casse est activée, vous pouvez la désactiver et vérifier à nouveau la connexion

SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;

System altered.

Et essayez de vous connecter. Si cela fonctionne, alors vous savez que la sensibilité à la casse est le problème, vous pouvez modifier le mot de passe de l'utilisateur et l'écrire quelque part pour mémoriser le mot de passe sensible à la casse, puis réactiver le paramètre système

SQL> ALTER user test identified by TEST1;

User altered.
SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = TRUE;

System altered.

(2) Il se peut que l'ID utilisateur ne soit pas valide pour le système cible . Vérifiez si l'ID utilisateur existe en tant que colonne de nom d'utilisateur dans la vue dba_users.

select username from dba_users where username ='<user name>';

(3) Vérifiez votre paramètre d'environnement $ORACLE_SID ou $TWO_TASK. Si votre $ORACLE_SID est défini sur la mauvaise base de données, vous pouvez obtenir un ORA-01017 erreur car vous vous connectez à la mauvaise base de données oracle.

(4) Vérifiez votre tnsnames.ora pour vous assurer que le service TNS pointe vers la bonne base de données. Vous pouvez également utiliser la commande tnsping pour vérifier cela

TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 22-JUNE-2016 23:01:06

Copyright (c) 1997, 2014, Oracle.  All rights reserved.

Used parameter files:
/oracle/product/11.2.0.4/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = techgoeasy.com)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TEST)))
OK (0 msec)

(5) Vous pouvez également obtenir l'erreur ORA-01017 dans l'environnement Dataguard et l'environnement de veille

Assurez-vous que le mot de passe de l'utilisateur SYS est le même du côté principal et du côté de secours. Créez le fichier de mot de passe oracle en utilisant orapwd avec le même mot de passe côté primaire et côté veille

Avec la base de données Oracle 12c, dans le cas de la base de données RAC principale, nous avons besoin d'un fichier de mot de passe à un emplacement partagé

orapwd file='+DATA/TEST/PASSWORDFILE/oraTEST' entries=10 dbuniquename=TEST password=<sys pass>

(6) Parfois, il peut y avoir une autre raison à l'erreur et ORA-01017 est une erreur trompeuse.

Vous pouvez tracer la pile des appels en utilisant la commande truss ou trace

Linux:
strace -o /tmp/strace_user.output -cfT sqlplus Scott/[email protected]

AIX, Solaris:
truss -fea -o /tmp/truss_user.output sqlplus scott/[email protected]

HP-UX:
tusc -afpo /tmp/tusc_user.output -aef sqlplus scott/[email protected]

(7) Cette erreur peut également être rencontrée lors de la duplication active RMAN

 Cause The SYS password is not the same between the original/source database and auxiliary/duplicate database. 
SOLUTION Perform the following steps:
 1) Copy the password file from the original/source database to the auxiliary/duplicate database. 
 2) Run the following OS command "cksum" to check whether the password files are the same on both the original/source database and auxiliary/duplicate database. 
cksum {password_file_name}

(8) Mots de passe insensibles à la casse et nom d'utilisateur ou mot de passe ORA-1017 invalide

Le protocole d'authentification par défaut d'Oracle Database 12c version 2 (12.2) est 12 (mode exclusif). Ce protocole requiert des mots de passe sensibles à la casse pour l'authentification. Passez en revue vos options si vous avez des versions de mot de passe antérieures.

À partir d'Oracle Database 12c version 2 (12.2), la valeur par défaut du paramètre SQLNET.ORA ALLOWED_LOGON_VERSION_SERVER est remplacée par 12. Ce paramètre fait référence au protocole d'authentification de connexion utilisé pour le serveur, et non à la version d'Oracle Database.

Par défaut, Oracle ne prend plus en charge l'authentification par mot de passe insensible à la casse; seules les nouvelles versions de mot de passe (11G et 12C) sont autorisées. La version du mot de passe 10G insensible à la casse n'est plus générée.

Si vous avez des comptes qui nécessitent des versions de mot de passe 10G, pour éviter que les comptes utilisant cette version de mot de passe ne soient verrouillés hors de la base de données, vous pouvez passer d'un mode exclusif à un protocole d'authentification plus permissif.

La version du mot de passe peut être vérifiée comme

select username,password_version from dba_users;

Connectez-vous en tant qu'administrateur.

Modifiez le fichier SQLNET.ORA pour modifier le paramètre SQLNET.ALLOWED_LOGON_VERSION_SERVER de la valeur par défaut, 12, à 11 ou moins. Par exemple :

SQLNET.ALLOWED_LOGON_VERSION_SERVER=11

(9)   ORA-01017 en utilisant "sqlplus / as sysdba"

Cela peut se produire si l'utilisateur du système d'exploitation pour lequel vous essayez d'utiliser la commande ci-dessus n'est pas membre du groupe dba.

Assurez-vous que l'utilisateur du système d'exploitation fait partie du groupe DBA.

Vérifiez également sqlnet.ora . Si vous avez  sqlnet.authentication_services=none , vous pouvez également obtenir cette erreur

J'espère que vous aimez le contenu sur ORA-01017 nom d'utilisateur/mot de passe invalide

Articles connexes
ORA-00911 :ce message concerne les causes courantes de ORA-00911 :caractère invalide dans oracle avec des exemples et une résolution pour vous aider à terminer le travail
ORA-29913 :conseils de dépannage pour les erreurs ORA comme ora- 29913 :erreur lors de l'exécution de l'appel odciexttableopen, ora-29913 :erreur lors de l'exécution de l'appel odciexttablefetch
ORA-00257 :découvrez comment résoudre l'erreur d'archivage ORA-00257. Erreur de connexion interne uniquement. Diverses résolutions et exemples fournis étape par étape. identifié par des valeurs
ORA-28000 :ORA-28000 le compte est verrouillé est une erreur très courante. Découvrez ce post sur la façon de le résoudre étape par étape facilement sans aucun problème -28002 :Ce message explique comment résoudre ORA-28002, le mot de passe expirera. Que peut-on faire pour l'éviter complètement en créant un nouveau profil
Documentation Oracle 12.2