Oracle 데이터베이스에서 시스템 계정과 시스템 계정의 차이점은 무엇입니까?


39

sqlplus를 사용하여 관리자로 Oracle에 연결하는 방법에는 두 가지가 있습니다.

  1. sqlplus sys as sysdba
  2. sqlplus system/manager

이 계정은 다른 용도로 사용해야합니다.

이 두 스키마는 어떤 작업을 의미합니까? 언제 그들 중 하나를 사용해야합니까?

답변:


43

SYS

  • Oracle 데이터베이스 설치시 자동 생성
  • DBA역할 자동 부여
  • 기본 비밀번호가 CHANGE_ON_INSTALL 있습니다 (변경해야합니다).
  • 데이터베이스 데이터 사전에 대한 기본 테이블 및 뷰를 소유합니다.
  • 다음과 같이 연결할 때 기본 스키마 SYSDBA

SYS스키마의 테이블 은 데이터베이스에 의해서만 조작됩니다. 사용자 나 데이터베이스 관리자가 수정해서는 안되며 user 스키마에 테이블을 작성해서는 안됩니다 SYS. 데이터베이스 사용자는 SYS계정을 사용하여 Oracle 데이터베이스에 연결해서는 안됩니다 .

SYSTEM

  • Oracle 데이터베이스 설치시 자동 생성
  • DBA역할 자동 부여
  • 기본 비밀번호가 MANAGER 있습니다 (변경해야합니다).
  • 관리 정보를 표시하는 추가 테이블 및보기를 작성하는 데 사용됩니다.
  • 다양한 Oracle 데이터베이스 옵션 및 도구에서 사용하는 내부 테이블 및 뷰를 작성하는 데 사용

SYSTEM스키마를 사용하여 비 관리 사용자에게 관심있는 테이블을 저장 하지 마십시오 .

/통하다


19
실제로 모든 DBA는 sqlplus / as sysdba일상적인 작업을 수행합니다. 15 년 동안 수십 명의 숙련 된 DBA와 함께 일하면서 저는 SYSTEM계정 을 귀찮게하는 사람을 만나지 않았습니다 .
Gaius

21

로부터 11g 오라클 문서 :

SYS 및 SYSTEM 사용자

Oracle Database를 설치할 때 다음 관리 사용자 계정이 자동으로 생성됩니다. 둘 다 설치시 제공 한 비밀번호로 작성되며 DBA 역할이 자동으로 부여됩니다.

  • SYS

    이 계정은 모든 관리 기능을 수행 할 수 있습니다. 데이터베이스 데이터 사전에 대한 모든 기본 (기본) 테이블 및 뷰는 SYS 스키마에 저장됩니다. 이러한 기본 테이블과 뷰는 Oracle Database 운영에 중요합니다. 데이터 사전의 무결성을 유지하기 위해 SYS 스키마의 테이블은 데이터베이스에 의해서만 조작됩니다. 사용자 나 데이터베이스 관리자가 절대 수정해서는 안됩니다. SYS 스키마에 테이블을 작성해서는 안됩니다.

    SYS 사용자에게는 SYSDBA 권한이 부여되어 사용자가 백업 및 복구와 같은 고급 관리 작업을 수행 할 수 있습니다.

  • SYSTEM

    이 계정은 다음을 제외한 모든 관리 기능을 수행 할 수 있습니다.

    • 백업 및 복구

    • 데이터베이스 업그레이드

    이 계정을 사용하여 일상적인 관리 작업을 수행 할 수 있지만 Oracle은 데이터베이스 활동을 모니터링 할 수 있도록 Oracle 데이터베이스를 관리하기위한 명명 된 사용자 계정을 만드는 것이 좋습니다.

SYSDBA 및 SYSOPER 시스템 권한

SYSDBA 및 SYSOPER는 데이터베이스 작성, 시작, 종료, 백업 또는 복구와 같은 고급 관리 작업을 수행하는 데 필요한 관리 권한입니다. SYSDBA 시스템 권한은 완전한 권한을 가진 데이터베이스 관리자를위한 것이며 SYSOPER 시스템 권한을 통해 사용자는 기본 운영 작업을 수행 할 수 있지만 사용자 데이터를 볼 수는 없습니다.

SYSDBA 및 SYSOPER 시스템 권한은 데이터베이스가 열려 있지 않은 경우에도 데이터베이스 인스턴스에 대한 액세스를 허용합니다. 따라서 이러한 권한의 제어는 데이터베이스 자체 외부에 있습니다. 이 권한을 통해 이러한 권한 중 하나가 부여 된 관리자가 데이터베이스 인스턴스에 연결하여 데이터베이스를 시작할 수 있습니다.

SYSDBA 및 SYSOPER 특권을 다른 방식으로 특권을 부여 할 수없는 특정 데이터베이스 조작을 수행 할 수있는 연결 유형으로 생각할 수도 있습니다. 예를 들어 SYSDBA 권한이 있으면 AS SYSDBA를 사용하여 데이터베이스에 연결할 수 있습니다.

SYS 사용자에게는 설치시 SYSDBA 권한이 자동으로 부여됩니다. SYS 사용자로 로그인 할 때 SYSDBA 또는 SYSOPER로 데이터베이스에 연결해야합니다. SYSDBA 사용자로 연결하면 SYSDBA 권한이 호출됩니다. SYSOPER로 연결하면 SYSOPER 권한이 호출됩니다. Oracle Enterprise Manager Database Control에서는 SYSDBA 또는 SYSOPER로 연결하지 않고 사용자 SYS로 로그인 할 수 없습니다.

SYSDBA 또는 SYSOPER 권한으로 연결하면 일반적으로 사용자 이름과 연관된 스키마가 아닌 기본 스키마로 연결됩니다. SYSDBA의 경우이 스키마는 SYS입니다. SYSOPER의 경우 스키마는 PUBLIC입니다.


8

SYS (또는 다른 SYSDBA 연결)와 다른 모든 사용자의 주요 차이점의 예 : SYS는 일관된 읽기를 수행 할 수 없습니다 . 이것에 대한 한 가지 의미 (다른 것들도 있음)는 이전 exp 유틸리티를 사용하여 CONSISTENT = Y 내보내기를 SYS로 수행 할 수 없다는 것입니다.

오라클 직원이자 전문가 인 Tom Kyte는 당신이 어느 쪽도 사용해서는 안된다고 생각합니다 . SYS와 관련하여 그는 위의 예에서 설명한 것과 다르게 작동하지만 더 일반적으로 Oracle Corporation에서 "소유"한 것으로 간주합니다. 스키마를 변경하거나 스키마에 무언가를 추가하고 문제가 발생하면 (예 : 데이터베이스 업그레이드 실패) Oracle Support의 대답은 "그렇지 않아야합니다"라고 생각합니다.


0

포스터가 두 가지 연결 방법 만 있다고 말하는 것처럼 들립니다.

"sqlplus를 사용하여 관리자로 Oracle에 연결하는 두 가지 방법이 있습니다.

sqlplus sys as sysdba
sqlplus system/manager"

관리자 계정은 SYSDBA 권한 또는 DBA 역할을 가진 모든 Oracle 사용자 계정입니다. SYS는 SYSDBA가있는 사전 정의 된 사용자이고 SYSTEM은 DBA가있는 사전 정의 된 사용자입니다. 데이터베이스에 n 개의 관리자 계정이있는 경우, 정의에 따라 관리자 권한으로 연결할 수있는 n 명의 사용자가 있습니다. 그 중 두 개만있는 것은 아닙니다.

또 다른 요점은 SQL * Plus와 관련이 있습니다. OS 프롬프트에서 sqlplus / as sysdba와 같은 OS 인증을 사용하여 SYS로 연결할 수 있습니다. SQL * Plus를 시작한 다음 CONNECT / AS SYSDBA를 시작할 수도 있습니다. OS 프롬프트, CONNECT 문에서 암호를 지정하거나 SQL * Plus가 암호를 묻도록 할 수 있습니다. 넷 서비스 이름을 사용할 수 있습니다. SYSTEM 암호를 변경할 수 있습니다. 등등.

포스터가 말하는 것은 Oracle 데이터베이스에 두 개 이상의 관리자 계정이 있고 SYSTEM에 기본 암호가 있고 OS 인증이 설정되어 있으면 두 가지 예입니다. SYS와 SYSTEM이 SQL * Plus를 사용하여 데이터베이스에 로그인하는 방법

SYS와 SYSTEM의 차이점에 대한 질문은 다르며 답변되었습니다.

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