Windows 설치에서 ORA-01031 : 불충분 한 권한 오류를 해결하는 방법?


12

Windows 2008 R2 Server에 Oracle 11G를 설치했습니다. 또한 별도의 설치 미디어를 사용하여 Oracle Client Libraries를 설치했습니다. 클라이언트 설치 후 다음을 사용하여 데이터베이스에 로그인하려고 할 때 :

C:\>sqlplus / as sysdba

다음과 같은 오류가 발생합니다.

ORA-01031 : 불충분 한 특권

이것은 클라이언트 설치 전에 작동했습니다. 내 계정이 ORA_DBA그룹에 있습니다. 내 계정도 관리자 그룹에 있습니다. ORACLE_SID환경 변수 목록에 설정 하지 않았습니다 . 그래야합니까? 이것은 클라이언트 설치 전에 작동했으며 당시에는 해당 변수가 없었습니다.

UAC는 가장 낮은 수준에 있으며 항상 cmd관리자 권한으로 실행 합니다.

나는이 sqlnet.ora폴더에 같은 파일 :

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

Windows 레지스트리 (regedit 사용)에서 경로에서 Computer > HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > ORACLE두 개의 키를 찾을 수 있습니다.

KEY_OraClient11g_home1
KEY_OraDb11g_home1

그리고 그 키 아래에서 ORACLE_HOME변수 를 찾을 수 있습니다. 따라서 클라이언트 설치도 생성 ORACLE_HOME되어 이제 두 개가 ORACLE_HOME있습니다. 이것이이 문제와 관련이 있는지 모르겠습니다.

Windows 컴퓨터에서이 오류를 해결하는 방법은 무엇입니까?

답변:


7

문제는 Oracle 클라이언트 설치가 Oracle 서버 설치 전에 시스템 PATH에 있다는 것입니다 (사실, 클라이언트를 설치하기 전에 작동했다고 언급 할 수도 있습니다).

다음과 같이 진행하십시오 :

  1. 혼란 스럽기 때문에 Oracle Client를 제거하십시오. uninstall 옵션을 사용하지만 나중에 디렉토리와 Oracle Client 레지스트리 키가 없어 졌는지 확인하고 필요한 경우 직접 제거하십시오.

    ( 서버 홈 이후 의 경로에 Oracle 클라이언트 홈을 설치하여이 작업을 수행 할 수 있지만 단일 설치 만하는 것이 훨씬 간단합니다. Oracle 서버 설치에는 이미 완전한 Oracle 클라이언트가 포함되어 있습니다).

  2. 서버의 홈 경로가 PATH에 있는지 확인하십시오. 그리고 다른 오라클 홈은 없습니다.

  3. 계정이 ORA_DBA 그룹에 있는지 확인하십시오. 특히 도메인을 사용하는 경우이를 다시 확인하십시오.

  4. 다른 모든 방법이 실패하면 SQLNET.AUTHENTICATION_SERVICES=(NTS)sqlnet.ora에서 제거 할 수 있으므로 암호 인증을 사용해야합니다.


PATH에서 클라이언트 빈보다 OracleXE 빈을 넣는 데 도움이 됨
mmey

내 문제는 NTS 대신 SQLNET.AUTHENTICATION_SERVICES = (NONE)입니다.
jcho360

0

랩톱에 10g와 11g가 설치되어 있으며 가장 최근에는 OBIEE 클라이언트가 설치되어 있습니다. 나는 11g 인스턴스에 sysdb로 로그인 할 수 있었지만 오늘 아침에 다음을 얻었습니다.

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

다음을 수행하여 문제를 해결했습니다.

  1. 시작 DB 및 리스너;
  2. tnsname이 작동하는지 확인하십시오 tnsping orcl. 그때
  3. set ORACLE_SID=orcl
  4. sqlplus sys/"passwd"@orcl as sysdba

도움이 되었기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.