mardi 29 mars 2011

ORA-01031: insufficient privileges

Si vous utilisez une base oracle sous windows et que vous obtenez l'erreur ORA-01031 lorsque vous vous connectez en SYSDBA sans préciser de mot de passe, il y'a de fortes chances que le problème soit lié à la configuration de votre fichier SQLNET.ORA
C:\HOMEWARE>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Mon Mar 28 13:22:53 2011

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-01031: insufficient privileges

En effet lorsque le paramètre SQLNET.AUTHENTICATION_SERVICES de votre fichier SQLNET.ora est positionné à NONE ou pas positionné du tout (NONE est la valeur par défaut), alors vous ne pouvez pas vous connecter en SYSDBA sans préciser de mot de passe.
Pour préciser à oracle que l'authentification se fait par l'OS windows il faut mettre ce paramètre à NTS:
SQLNET.AUTHENTICATION_SERVICES = (NTS)

Ainsi, vous n'êtes plus obligé de préciser le mot de passe:
C:\HOMEWARE>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Tue Mar 29 15:04:51 2011

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>

4 commentaires:

  1. Je tente de changer le NONE en NTS en vain... Le fichier est utilisé et je ne sais pas par quoi. Comment dois-je faire?

    RépondreSupprimer
  2. J'ai réussi à modifier le sqlnet.ora... Mais, votre méthode ne marche pas...

    RépondreSupprimer
  3. Merci. Au contraire des 2 messages précédents, cela fonctionne très bien chez moi sous Oracle 10.2.01.0 / Windows Server 2003. NTS est une valeur propre au monde Microsoft. Sous Unix/Linux : connexion possible sans mot de passe avec différent de NONE ou NTS ou encore sans le paramètre SQLNET.AUTHENTICATION_SERVICES.

    D'après la doc d'Oracle :
    Authentication Methods Available with Oracle Net Services:
    ...
    nts for Windows native operating system authentication.

    RépondreSupprimer
    Réponses
    1. C'est bon pour moi. Vérifier aussi que le compte est dans le groupe ora_dba
      J'ai aussi dû me déconnecter et reconnecter

      Supprimer