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 distinct. 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_DBA
groupe. Mon compte est également dans le groupe Administrateur. Je n'ai pas Oracle_SID
dé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à.
UAC est activé au niveau le plus bas et j'exécute toujours cmd
en tant qu'administrateur.
J'ai un sqlnet.ora
fichier comme celui-ci dans le dossier:
C:\app\myaccount\product\11.2.0\dbhome_1\NETWORK\ADMIN
# 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 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 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 > Oracle
Je peux trouver deux clés:
KEY_OraClient11g_home1
KEY_OraDb11g_home1
Et sous ces clés, je peux trouver Oracle_HOME
variables. Il semble donc que l'installation cliente ait également généré Oracle_HOME
de sorte que j'en ai maintenant deux Oracle_HOME
s. Je ne sais pas si cela a quelque chose à voir avec ce problème?
Comment résoudre cette erreur sur ma machine Windows?
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:
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 fonctionner cela en ayant le client Oracle home dans le chemin après le serveur home, mais il est beaucoup plus simple de n'avoir qu'une seule installation. Une installation de serveur Oracle contient déjà un client Oracle complet de toute façon ).
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.
Assurez-vous que votre compte est dans le groupe ORA_DBA. Vérifiez bien ceci, surtout si vous utilisez des domaines.
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.
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:
tnsping orcl
; puisset Oracle_SID=orcl
sqlplus sys/"passwd"@orcl as sysdba
J'espère que cela t'aides.