Como resolver ORA-01031: erro de privilégios insuficientes na instalação do Windows?

12

Instalei o Oracle 11G no meu Windows 2008 R2 Server. Também instalei as Oracle Client Libraries usando mídia de instalação separada. Após a instalação do cliente, quando tento fazer logon no banco de dados usando:

C:\>sqlplus / as sysdba

Eu recebo o seguinte erro:

ORA-01031: privilégios insuficientes

Isso funcionou antes da instalação do cliente. Minha conta está no ORA_DBAgrupo. Minha conta também está no grupo Administrador. Não ORACLE_SIDdefini na minha lista de variáveis ​​de ambiente. Tem que ser? Isso funcionou antes da instalação do cliente e eu também não tinha essa variável naquele momento.

O UAC está no nível mais baixo e eu sempre corro cmdcomo administrador.

Eu tenho um sqlnet.oraarquivo como este na pasta:

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

No registro do Windows (usando o regedit), no caminho Computer > HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > ORACLE, posso encontrar duas chaves:

KEY_OraClient11g_home1
KEY_OraDb11g_home1

E sob essas chaves, posso encontrar ORACLE_HOMEvariáveis. Parece que a instalação do cliente gerou também, ORACLE_HOMEe agora tenho dois ORACLE_HOMEs. Não sei se isso tem algo a ver com esse problema?

Como resolver esse erro na minha máquina Windows?

jrara
fonte

Respostas:

7

O problema é que a instalação do Oracle Client está no PATH do sistema antes da instalação do Oracle Server (na verdade, você até menciona que funcionou antes de instalar o cliente).

Proceda da seguinte forma:

  1. Remova o Oracle Client, pois isso é apenas algo confuso. Use a opção de desinstalação, mas depois verifique se o diretório e a chave de registro do Oracle Client desapareceram e remova manualmente, se necessário.

    (É possível fazer isso funcionar com o cliente Oracle em casa no caminho após a casa do servidor, mas é muito mais simples ter apenas a instalação única. Uma instalação do servidor Oracle já contém um cliente Oracle completo).

  2. Verifique se o caminho para a casa do servidor está no seu PATH. E nenhuma outra casa da Oracle está no caminho.

  3. Verifique se sua conta está no grupo ORA_DBA. Verifique isso, especialmente se você estiver usando domínios.

  4. Se tudo mais falhar, você poderá remover SQLNET.AUTHENTICATION_SERVICES=(NTS)do sqlnet.ora, pois isso forçará o uso da autenticação por senha.

Colin 't Hart
fonte
Ajudou para eu colocar o bin OracleXE antes de as caixas cliente no PATH
mmey
o meu problema era SQLNET.AUTHENTICATION_SERVICES = (NONE) em vez de NTS
jcho360
0

Tenho 10g e 11g instalados no meu laptop, além do cliente OBIEE mais recentemente. Eu costumava conseguir fazer login como sysdb para instância 11g, mas obtive o seguinte nesta manhã:

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

Resolvi o problema, fazendo o seguinte:

  1. inicialização do db & listener;
  2. verifique se o tnsname funciona por tnsping orcl; então
  3. set ORACLE_SID=orcl
  4. sqlplus sys/"passwd"@orcl as sysdba

Espero que isto ajude.

user57255
fonte