문제

나는 SQL 서버 개발자/DBA 컨설턴트를 돕는 고객에게 최근에 그들의 오라클 DBA.가 수행 개발에서 오라클,하지만 많은 DBA 작업,그리고 멀티홈 환경은 이렇습니다.

문제: 나를 사용하여 연결할 수 있는"SYS As SYSDBA"SQL 에서 플러스,하지만 에서 SQL 개발자에서 동일한 시스템입니다.그러나,나 을 사용하여 연결"시스템"중 하나 SQL Plus SQL 개발자이다.

상세정보:

이 서버에서 윈도우 관리자 계정(또는 입력한 서버에서 관리자는 Oracle 관리 Asst.),이 DOS 명령을 사용:

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>sqlplus /@MyDb as sysdba

고,Select*from V$인스턴스는 것을 보여줍니다 MyDb 에서는 모두 도구 및 db11.2.0.3

그래서 이것을 하나:

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>sqlplus sys/<pwd>@MyDb as sysdba

(도:입력 잘못된 비밀번호 작품뿐만 아니라(!))

SQL 사용하여 플러스 시작 메뉴에서 옵션을 동(절단,계정 및 가정),이들은 또한 작업:

Enter user-name: /@MyDb as sysdba
Enter user-name: sys/<pwd>@MyDb as sysdba

Select*from V$인스턴스는 것을 보여줍니다 MyDb 에서는 모두 도구 및 db11.2.0.3

액세스하려고 시도 MyDb 에서 동일한 SQL 개발자,성공을 위해"시스템"사용자 이름,하지만 실패에 대한"sys""as sysdba""로 ORA-01031:불충분한 권한".그러나,이러 작동 연결하는 경우 다른 데이터베이스에서 다른 서버에 있습니다.

나는 연구이며,대부분의 게시하는 데 도움이 될 것을 목표로 존재하지 않는 경우에는 연결을 모두 만들 수 있습니다하지 않는 경우 여기에.그냥 머리에 떨어져 이들 중 일부:

  • 문제가 되지 않는 네트워크하지 않는 설치하기 때문에,SQL 개발자를 위해"시스템"로컬 및 원격으로.
  • 문제가 되지 않는 DB/인스턴스가 시작되지 않기 때문에 다시,그것은 작품을 위해"시스템"
  • 그것은 나에 연결하는 잘못된 데이터베이스,나는 그것을 확인하를 위해"시스템"
  • AFAIK,그것은 나는 잘못 사용하는 구문에서 SQL 개발자에 연결하는 DB"As SYSDBA"작동하기 때문에 연결할 때 다른 서버에서 다른 DBs.

내 창자가 느끼는 중

  1. 거기에 몇 가지 설정을 말하는"을 허용하지 않 SYSDBA 네트워크를 통해 연결"또는
  2. 거기에 몇 가지 구성이/권한 문제에서 Oracle 네트워크 수신기에서 그것을 방지 확인하고 윈도우 관리자 계정이며,또한 sys 하지 않는 암호는 무엇이었을 말했었고,마지막으로 Oracle 이 제공하는 무능한 오류 메시지입니다.

어떤 도움 또는 지침에 이 주시면 감사하겠습니다.


그래,그래서 사용하는 지침에서@BalasPapp,나를 찾을 수 있었다 더 다음과 같다:

  • 이 데이터베이스에 의해 서비스 두 번째 Oracle11g 집이라는 OraDb11g_home3pathed 하기 D:\Oracle\app\product\11.2.0\dbhome_1D:\Oracle\app\product\11.2.0\dbhome_1.
  • 윈도우 서비스 no 시작 매개변수에 대한 그것은 제외하고(DB 이름,of course).
  • 명령 show parameter remote_login_passwordfile 쇼의 가치"".

내용의 수신기.ora:

# listener.ora Network Configuration File: D:\Oracle\app\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 = D:\Oracle\app\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\Oracle\app\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = <SERVERNAME>.<networkname>.local)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = D:\Oracle\app

의 내용을 sqlnet.ora:

# 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)

의 출력 lsnrctl status:

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 23-DEC-2015 12:03:55

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<SERVERNAME>.<networkname>.local)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
Start Date                02-DEC-2015 16:25:41
Uptime                    20 days 19 hr. 38 min. 17 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   D:\Oracle\app\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File         D:\Oracle\app\diag\tnslsnr\<SERVERNAME>\listener\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<SERVERNAME>.<networkname>.local)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "<DBNAME>" has 1 instance(s).
  Instance "<DBNAME>", status READY, has 1 handler(s) for this service...
The command completed successfully

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>

매개변수에서 연결할 때 SQL 개발자:

Username:  system (or sys)
Password:  <...>
Connection 
  Type:    Basic
  Role:    Default (or SYSDBA)
Hostname:  localhost
Port:      1521
SID (or Service name, both work/fail the same):
           <dbname>

(Neither OS Authentication nor Kerberos is set)

작품을 위해"시스템 기본값",실패에 대한"sys SYSDBA"와"충분한 권한".내가 노력의 많은 조합을 OS 인증 및 Keberos 설정뿐만 아니라,무 소용이 없습니다.

마지막으로,이러한 두 .ora 에서 파일 /database 디렉토리

SNCF<DBNAME>.ORA           (18MB)
SPFILE<DBNAME>.ORA         (4kb)

그들은 모두 나타나 바이너리 파일에는 메모장입니다.

도: select * from v$pwfile_users 행을 반환하지 않습니다.

도움이 되었습니까?

해결책

를 사용하여 연결하는'as sysdba'클라이언트에서 이상 sql*순요

  1. remote_login_passwordfile 매개 변수가'독점'
  2. 암호파일(orapw${선택하고 만들기 버튼을 클릭})본 인스턴스에 대해 당신에 연결하려고
  3. 사용자가 허 sysdba 에서 데이터베이스(sys 가 이 기본값을 사용 passwd 파일 암호입니다.

기본 위치한 암호파일은$ORACLE_HOME/dbs 하지만 이후 Oracle v12 그것에 저장할 수도 있습니다 ASM.는 경우에 당신은 그것을 찾을 사용하여 srvctl

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 dba.stackexchange
scroll top