Comment résoudre ORA-01031: erreur de privilèges insuffisants sur l'installation de Windows?

12

J'ai installé Oracle 11G sur mon serveur Windows 2008 R2. J'ai également installé les bibliothèques client Oracle à l'aide d'un support d'installation séparé. Après l'installation du client, lorsque j'essaie de me connecter à la base de données en utilisant:

C:\>sqlplus / as sysdba

J'obtiens une erreur suivante:

ORA-01031: privilèges insuffisants

Cela a fonctionné avant l'installation du client. Mon compte est sur le ORA_DBAgroupe. Mon compte est également dans le groupe Administrateur. Je n'ai pas ORACLE_SIDdéfini dans ma liste de variables d'environnement. Est-ce que c'est obligé? Cela fonctionnait avant l'installation du client, et je n'avais pas non plus cette variable à ce moment-là.

L'UAC est activé au niveau le plus bas et je cours toujours en cmdtant qu'administrateur.

J'ai un sqlnet.orafichier comme celui-ci dans le dossier:

C:\app\myaccount\product\11.2.0\dbhome_1\NETWORK\ADMIN

sqlnet.ora

# sqlnet.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

tnsnames.ora

# tnsnames.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.mydb.com)
    )
  )

listener.ora

# listener.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\myaccount\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\myaccount\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = C:\app\myaccount

Depuis le registre Windows (en utilisant regedit), depuis le chemin, Computer > HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > ORACLEje peux trouver deux clés:

KEY_OraClient11g_home1
KEY_OraDb11g_home1

Et sous ces clés, je peux trouver des ORACLE_HOMEvariables. Il semble donc que l'installation du client ait également généré de ORACLE_HOMEsorte que j'ai maintenant deux ORACLE_HOMEs. Je ne sais pas si cela a quelque chose à voir avec ce problème?

Comment résoudre cette erreur sur ma machine Windows?

jrara
la source

Réponses:

7

Le problème est que votre installation Oracle Client est dans le système PATH avant votre installation Oracle Server (en fait, vous mentionnez même que cela a fonctionné avant d'installer le client).

Procédez comme suit:

  1. Supprimez le client Oracle car cela ne fait que semer la confusion. Utilisez l'option de désinstallation mais vérifiez ensuite que le répertoire et la clé de registre Oracle Client ont disparu et supprimez-les à la main si nécessaire.

    (Il est possible de faire en sorte que le client Oracle se trouve dans le chemin après celui du serveur, mais il est beaucoup plus simple de n'avoir qu'une seule installation. Une installation de serveur Oracle contient de toute façon déjà un client Oracle complet).

  2. Assurez-vous que le chemin d'accès à la maison du serveur se trouve dans votre CHEMIN. Et aucune autre maison Oracle n'est sur le chemin.

  3. Assurez-vous que votre compte est dans le groupe ORA_DBA. Vérifiez bien ceci, surtout si vous utilisez des domaines.

  4. Si tout le reste échoue, vous pouvez supprimer SQLNET.AUTHENTICATION_SERVICES=(NTS)de votre sqlnet.ora car cela vous forcera à utiliser l'authentification par mot de passe.

Colin 't Hart
la source
A aidé à mettre le bac OracleXE avant les bacs clients dans le PATH
mmey
mon problème était SQLNET.AUTHENTICATION_SERVICES = (NONE) au lieu de NTS
jcho360
0

J'ai à la fois 10g et 11g installés sur mon ordinateur portable, plus le client OBIEE le plus récemment. Avant, je pouvais me connecter en tant qu'instance sysdb à 11g, mais j'ai obtenu ce qui suit ce matin:

SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges

J'ai résolu le problème en procédant comme suit:

  1. démarrage db & listener;
  2. assurez-vous que tnsname fonctionne par tnsping orcl; puis
  3. set ORACLE_SID=orcl
  4. sqlplus sys/"passwd"@orcl as sysdba

J'espère que cela t'aides.

user57255
la source