Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
LAMI DBA

Articles autour des SGBD Oracle, SQL Server & PostgreSQL

Oracle 12cR2 et pourquoi il arrive de ne pas pouvoir se connecter en SYSTEM sur une instance

Si comme moi vous avez récemment construit une instance en 12cR2 et que vous n'arrivez pas à vous connecter en tant que SYSTEM sur votre base, alors que vous avez pourtant bien réinitialisé à plusieurs reprises le password du compte (et probablement l'avez délocké un bon nombre de fois), alors vous allez apprécier ce petit article !

Afin d'éclairer sur le problème que j'ai rencontré, voici un exemple après avoir modifié le password du compte system après la création de l'instance, et tenter de m'y connecter :

SQL> alter user system identified by "mypass";

SQL>  select username , account_status from dba_users where username ='SYSTEM';

USERNAME                    ACCOUNT_STATUS
------------------------    --------------------------------
SYSTEM                        OPEN

SQL> connect system/mypass
ERROR:
ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.


En utilisant un ALIAS TNS, sait on jamais ...

SQL> connect system/mypass@ORADB1
ERROR:
ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.


Pareil, mais en SYS cela fonctionne pourtant bien :

SQL> connect  sys/mypass@ORADB1 as sysdba
Connected.


Après un petit mal au crane j'ai du me résigner et me rendre sur le support oracle pour y découvrir une note qui, une fois n'est pas coutume, concerne à 100% mon problème !

Il s'agit de la note ID 2075401.1 qui indique que la conjonction des paramètres SEC_CASE_SENSITIVE_LOGON (instance) et de SQLNET.ALLOWED_LOGON_VERSION_SERVER (sqlnet.ora) serait la cause de cette erreur.

 

"The new Exclusive Mode default for password-based authentication 
in Oracle 12.2 conflicts with case-insensitive password configurations." 

 

Et en effet, le fait d'avoir SQLNET.ALLOWED_LOGON_VERSION_SERVER de non renseigné dans le sqlnet.ora ET d'avoir SEC_CASE_SENSITIVE_LOGON de configuré à FALSE (non default) empêche toute connexion à la base, excepté pour le user SYS.

 

Note :

Par défaut en 12.2, si SQLNET.ALLOWED_LOGON_VERSION_SERVER n'est pas renseigné, oracle fixe sa valeur défaut à 12 (exclusive mode)

Cf documentation ICI

 

Comme je rentre pile poil dans ce cas, je prend la solution de fixer SEC_CASE_SENSITIVE_LOGON à TRUE, et cela passe !

SQL> connect system/mypass
ERROR:
ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

SQL> connect  sys/mypass@ORADB1 as sysdba
Connected.

SQL> alter system set sec_case_sensitive_logon=TRUE ;
System altered.

SQL> connect system/mypass
Connected

 

Et le tour est joué !

Attention cependant car en 12.2 l'usage de SEC_CASE_SENSITIVE_LOGON a été déprécié et il est recommandé de gérer la connectivité à la base via le fichier SQLNET.ORA.

LAMI-DBA

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article