So beheben Sie ORA-01031: Fehler bei unzureichenden Berechtigungen bei der Windows-Installation?

11

Ich habe Oracle 11G auf meinem Windows 2008 R2-Server installiert. Ich habe Oracle Client Libraries auch mit separaten Installationsmedien installiert. Wenn ich nach der Client-Installation versuche, mich bei der Datenbank anzumelden, indem ich:

C:\>sqlplus / as sysdba

Ich erhalte folgende Fehlermeldung:

ORA-01031: Unzureichende Berechtigungen

Dies funktionierte vor der Client-Installation. Mein Konto ist in der ORA_DBAGruppe. Mein Konto befindet sich ebenfalls in der Administratorgruppe. Ich habe nicht ORACLE_SIDin meiner Liste der Umgebungsvariablen festgelegt. Muss es sein Dies funktionierte vor der Client-Installation, und ich hatte diese Variable zu diesem Zeitpunkt auch nicht.

Die Benutzerkontensteuerung ist auf der niedrigsten Ebene cmdaktiviert , und ich arbeite immer als Administrator.

Ich habe eine sqlnet.oraDatei wie diese im Ordner:

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

Aus der Windows-Registrierung (mit regedit) Computer > HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > ORACLEkann ich aus dem Pfad zwei Schlüssel finden:

KEY_OraClient11g_home1
KEY_OraDb11g_home1

Und unter diesen Schlüsseln kann ich ORACLE_HOMEVariablen finden . Es scheint also, dass die Client-Installation auch ORACLE_HOMEso generiert wurde , dass ich jetzt zwei ORACLE_HOMEs habe. Ich weiß nicht, ob dies etwas mit diesem Problem zu tun hat.

Wie behebe ich diesen Fehler auf meinem Windows-Computer?

jrara
quelle

Antworten:

7

Das Problem ist, dass sich Ihre Oracle Client-Installation vor Ihrer Oracle Server-Installation im Systempfad befindet (Sie erwähnen sogar, dass sie vor der Installation des Clients funktioniert hat).

Gehen Sie wie folgt vor:

  1. Entfernen Sie den Oracle-Client, da dies nur verwirrende Dinge sind. Verwenden Sie die Deinstallationsoption, überprüfen Sie anschließend, ob das Verzeichnis und der Oracle Client-Registrierungsschlüssel nicht mehr vorhanden sind, und entfernen Sie sie gegebenenfalls von Hand.

    (Es ist möglich, dies zum Laufen zu bringen, indem sich der Oracle-Client im Pfad nach dem Server befindet, aber es ist viel einfacher, nur die Einzelinstallation durchzuführen. Eine Oracle-Serverinstallation enthält ohnehin bereits einen vollständigen Oracle-Client.)

  2. Stellen Sie sicher, dass sich der Pfad zum Server-Home in Ihrem PATH befindet. Und kein anderes Oracle-Zuhause ist auf dem Weg.

  3. Stellen Sie sicher, dass sich Ihr Konto in der Gruppe ORA_DBA befindet. Überprüfen Sie dies noch einmal, insbesondere wenn Sie Domains verwenden.

  4. Wenn alles andere fehlschlägt, können Sie es SQLNET.AUTHENTICATION_SERVICES=(NTS)aus sqlnet.ora entfernen, da Sie dadurch die Kennwortauthentifizierung verwenden müssen.

Colin 't Hart
quelle
Hat mir geholfen, den OracleXE-Bin vor den Client-Bins im PATH zu platzieren
mmey
Mein Problem war SQLNET.AUTHENTICATION_SERVICES = (NONE) anstelle von NTS
jcho360
0

Ich habe sowohl 10g als auch 11g auf meinem Laptop installiert und zuletzt den OBIEE-Client. Früher konnte ich mich als sysdb bei einer 11g-Instanz anmelden, bekam aber heute Morgen Folgendes:

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

Ich habe das Problem folgendermaßen gelöst:

  1. Startup-Datenbank & Listener;
  2. Stellen Sie sicher, dass tnsname von funktioniert tnsping orcl. dann
  3. set ORACLE_SID=orcl
  4. sqlplus sys/"passwd"@orcl as sysdba

Hoffe das hilft.

user57255
quelle