Come risolvere ORA-01031: errore di privilegi insufficienti sull'installazione di Windows?


12

Ho installato Oracle 11G sul mio server Windows 2008 R2. Ho anche installato Oracle Client Libraries utilizzando supporti di installazione separati. Dopo l'installazione del client, quando provo ad accedere al database usando:

C:\>sqlplus / as sysdba

Ottengo un errore seguente:

ORA-01031: privilegi insufficienti

Questo ha funzionato prima dell'installazione del client. Il mio account è nel ORA_DBAgruppo. Il mio account è anche nel gruppo Amministratore. Non ho ORACLE_SIDimpostato nell'elenco delle variabili di ambiente. Deve essere? Questo ha funzionato prima dell'installazione del client e non avevo nemmeno quella variabile in quel momento.

Controllo dell'account utente è attivo al livello più basso e corro sempre cmdcome amministratore.

Ho un sqlnet.orafile come questo nella cartella:

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

Dal registro di Windows (usando regedit), dal percorso Computer > HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > ORACLEposso trovare due chiavi:

KEY_OraClient11g_home1
KEY_OraDb11g_home1

E sotto quelle chiavi posso trovare ORACLE_HOMEvariabili. Quindi sembra che l'installazione del client sia stata generata anche in ORACLE_HOMEmodo che ora abbia due ORACLE_HOMEsecondi. Non so se questo ha qualcosa a che fare con questo problema?

Come risolvere questo errore sul mio computer Windows?

Risposte:


7

Il problema è che l'installazione del client Oracle si trova nel PERCORSO di sistema prima dell'installazione del server Oracle (in effetti, si menziona persino che ha funzionato prima di installare il client).

Procedi come segue:

  1. Rimuovi Oracle Client in quanto confonde solo cose. Utilizzare l'opzione di disinstallazione, ma successivamente verificare che la directory e la chiave di registro del client Oracle non siano più disponibili e, se necessario, rimuoverli manualmente.

    (È possibile farlo funzionare avendo il client Oracle a casa nel percorso dopo la home del server, ma è molto più semplice avere la sola installazione. Un'installazione del server Oracle contiene già comunque un client Oracle completo).

  2. Assicurati che il percorso verso la casa del server sia nel PERCORSO. E nessun'altra casa Oracle è sul percorso.

  3. Assicurati che il tuo account sia nel gruppo ORA_DBA. Ricontrolla questo, specialmente se stai usando domini.

  4. Se tutto il resto fallisce, è possibile rimuovere SQLNET.AUTHENTICATION_SERVICES=(NTS)da sqlnet.ora in quanto ciò ti costringerà a utilizzare l'autenticazione con password.


Mi ha aiutato a mettere il cestino OracleXE prima che il client bin nel PATH
mmey

il mio problema era SQLNET.AUTHENTICATION_SERVICES = (NONE) invece di NTS
jcho360

0

Ho installato 10g e 11g sul mio laptop, più il client OBIEE più di recente. Ero in grado di accedere come sysdb all'istanza 11g, ma stamattina ho ottenuto quanto segue:

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

Ho risolto il problema procedendo come segue:

  1. startup db & listener;
  2. assicurati che tnsname funzioni tnsping orcl; poi
  3. set ORACLE_SID=orcl
  4. sqlplus sys/"passwd"@orcl as sysdba

Spero che questo ti aiuti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.