¿Cómo resolver ORA-01031: error de privilegios insuficientes en la instalación de Windows?

12

Instalé Oracle 11G en mi servidor Windows 2008 R2. También instalé Bibliotecas de Cliente Oracle usando medios de instalación separados. Después de la instalación del cliente, cuando intento iniciar sesión en la base de datos usando:

C:\>sqlplus / as sysdba

Me sale el siguiente error:

ORA-01031: privilegios insuficientes

Esto funcionó antes de la instalación del cliente. Mi cuenta está en el ORA_DBAgrupo. Mi cuenta también está en el grupo Administrador. No he ORACLE_SIDestablecido en mi lista de variables de entorno. ¿Tiene que ser? Esto funcionó antes de la instalación del cliente, y tampoco tenía esa variable en ese momento.

UAC está en el nivel más bajo, y siempre corro cmdcomo administrador.

Tengo un sqlnet.oraarchivo como este en la carpeta:

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

Desde el registro de Windows (usando regedit), desde la ruta Computer > HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > ORACLEpuedo encontrar dos claves:

KEY_OraClient11g_home1
KEY_OraDb11g_home1

Y bajo esas teclas puedo encontrar ORACLE_HOMEvariables. Por lo tanto, parece que la instalación del cliente también se generó, de ORACLE_HOMEmodo que ahora tengo dos ORACLE_HOMEs. No sé si esto tiene algo que ver con este problema.

¿Cómo resolver este error en mi máquina Windows?

jrara
fuente

Respuestas:

7

El problema es que su instalación de Oracle Client está en la RUTA del sistema antes de su instalación de Oracle Server (de hecho, incluso menciona que funcionó antes de instalar el cliente).

Proceder de la siguiente:

  1. Elimine el Cliente Oracle, ya que solo son cosas confusas. Use la opción de desinstalación, pero luego verifique que el directorio y la clave de registro de Oracle Client hayan desaparecido y elimínelos a mano si es necesario.

    (Es posible hacer que esto funcione si el cliente de Oracle se encuentra en la ruta después del inicio del servidor, pero es mucho más simple tener una sola instalación. Una instalación del servidor de Oracle ya contiene un cliente de Oracle completo de todos modos).

  2. Asegúrese de que la ruta de acceso al hogar del servidor esté en su RUTA. Y ninguna otra casa de Oracle está en el camino.

  3. Asegúrese de que su cuenta esté en el grupo ORA_DBA. Vuelva a verificar esto, especialmente si está utilizando dominios.

  4. Si todo lo demás falla, puede eliminarlo SQLNET.AUTHENTICATION_SERVICES=(NTS)de su sqlnet.ora ya que esto lo obligará a usar la autenticación de contraseña.

Colin 't Hart
fuente
Me ayudó a poner el contenedor OracleXE antes que los contenedores del cliente en la RUTA
mmey
mi problema fue SQLNET.AUTHENTICATION_SERVICES = (NINGUNO) en lugar de NTS
jcho360
0

Tengo instalados 10g y 11g en mi computadora portátil, más el cliente OBIEE más recientemente. Solía ​​poder iniciar sesión como sysdb en la instancia de 11g, pero obtuve lo siguiente esta mañana:

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

Resolví el problema haciendo lo siguiente:

  1. db de inicio y oyente;
  2. asegúrese de que tnsname funciona por tnsping orcl; entonces
  3. set ORACLE_SID=orcl
  4. sqlplus sys/"passwd"@orcl as sysdba

Espero que esto ayude.

user57255
fuente