본문 바로가기

Oracle/오라클 양성반 15기

SYSOPER

철저하게 본인 생각에 의해서 쓰여진 부분입니다.


있다는것을 알지만 한번도 들어가본적없을것같은 SYSOPER 테스트.

 

 

oracle database 가 최적의 성능을 발휘하기위해서
선택한 것이 OS에 최적화된성능일것이라 생각된다.
그래서 해당 OS에 맞는 설치파일이 개별로 존재를 하고
각 OS별로 튜닝(하드웨어적인 시스템적인)이 다르다.

완전히 독립적이지 못하다 보니 OS와 떨어져서 예기할수도 없다.

아무튼 중요한건 Oracle DataBase 는 OS와 생각보다 많은 연관이 있다.

 

현업(실제 업무)에서는
DBA가 있고 SE가 있다.
DBA 말그대로 DATABASE Administrator 다.
DATABASE 의 관리자
DATABASE 안의 데이터까지도 전부 컨트롤을 해야하는 사람.

그리고

SE - System Engineer
시스템의 OS또는 하드웨어적인 부분을 컨트롤 하는사람이다.

처음에 말했지만

Oracle은 OS와 많은 연관이 있는 application 이기때문에
계정을 나눴다고 생각이 든다.

SE 에게 하드웨어적인 전체 운영적인 부분의 권한을 주면서도
그렇다고 데이터는 컨트롤 하지 못하게 하는 권한을 생각하다보니
SYSOPER 가 나온것같다.


SE가 database 에 마음대로 접속해서 아무데이터나 막본다면
또는 몰래 가져간다면 그것또한 문제아니겠는가?

 

SYSOPER 의 권한리스트를 보면 아마 정확하게 이해가 가지 않을까 싶다.

1. instance startup, mount, open
2. database open,
3. shutdown
4. dismount database close ,
5. alter database backup archivelog , and recover

딱 보기에도 띄우고 죽이고 이런류의 권한뿐이다.


테스트 한번 해보자.

-- 계정 seman 을 하나 생성한다. 이놈은 이제부터 시스템 엔지니어다.
SQL> create user seman identified by seman;

User created.

SQL>

-- 생성한 계정에 sysoper 권한을 준다.
SQL> grant sysoper to seman;

Grant succeeded.

SQL>


-- 이제 seman 으로 접속해보자 ( sysdba만 치다가 sysoper 치니까 적응이 안된다. )
ocp@orcl> sqlplus seman/seman as sysoper

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Sep 27 15:36:31 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL>

 

############### 이제 SYSOPER 로 이것저것 테스트 해보자. #################

 

CASE 1. select *from tab;

SQL> select *from tab;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
MGMT$TARGET                    SYNONYM
MGMT$TARGET_COMPONENTS         SYNONYM
MGMT$TARGET_COMPOSITE          SYNONYM
MGMT$TARGET_PROPERTIES         SYNONYM
MGMT$TARGET_TYPE               SYNONYM
XDB_CONFIGURATION              SYNONYM
XMLROOT                        SYNONYM
XDB_NAMESPACES                 SYNONYM
XDB_DOM_HELPER                 SYNONYM
XDB_UTILITIES                  SYNONYM
XDB_TOOLS                      SYNONYM

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TEST_SYN1                      SYNONYM
.
.
.

19988 rows selected

SQL>

일단 뭔가 select는 된다.
헌데 좀 특이하다. 보통 이것저것 막나오는데 보기에 시노님만 보인다.
그럼 ... view는??? .... table은 ???

이렇게 날려보자.

SQL> select *From tab where TABTYPE = 'TABLE';

no rows selected

SQL> select *from tab where TABTYPE = 'VIEW';

no rows selected

SQL>

헛. 역시나 다 없단다.

 

CASE 2. 현재 인스턴스의 상태를 확인. ( select instance_name, status from v$instance )

SQL> select instance_name, status from v$instance;
select instance_name, status from v$instance
                                  *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL>

없다고 나온다. (당연할것이다. CASE 1 에서 view 를 못찾았으니.)
뭔가가 객체가 없다고 나오면 권한이 없다는 뜻아니겠는가~

 

CASE 3. 그럼 사용자를 조회해보자. (DBA_USERS)

 

SQL> select *From ALL_USERS;

SQL> select *from DBA_USERS;
select *from DBA_USERS
             *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL>

역시나 없다고 나온다.

 

CASE 4. 그럼 시스템이나 내려보자.


SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

 

오~ 이건된다.

 

CASE 5. 시스템을 올려보자.

 

SQL> startup
ORACLE instance started.
Database mounted.
Database opened.
SQL>

음..... 역시나 성공..

 

CASE 6. 마지막 계정생성


SQL> create user goodman identified by oracle;
create user goodman identified by oracle
                                  *
ERROR at line 1:
ORA-01031: insufficient privileges


SQL>

 

예상했지만 역시나.......

 

CASE 4,5 를 제외한 조회또는 계정생성등의 작업은 전부 작업이 불가능했다.

 

위의 사항을 봤을때 SYSOPER와 SYSDBA가

역할이 분명해진다. 또한 누가 상위인지 보여진다.


최상위 권한인 SYSDBA는 SYSOPER 를 포함하고있다.
SYSOPER 는 부분집합이라고 할수있겠다.

그것도 OS와 연관이 있는 ( 실제 운영체제에 프로세스가 띄워지는 역할. 혹시나 예기하지만 alter system set .. 으로 메모리를 조절하는것은 분명 OS와도 연관은 있겠으나 이것또한 SYSDBA 권한. ) 일 말고는 할수있는것이 없는 권한이라고 생각해볼수있다.


DATABASE와 OS 간의 경계의 선을 그어주는 권한이라고 생각해볼수 있겠다.

 

뭔가 이상있으면 ㅡ_ㅡ;; 댓글주세요.

 

원래는 차이점을 설명하고 싶었으나

SYSDBA가 다된다라는 사실은 우리가 모두 알고있기에 SYSOPER가 뭐가되는지만 설명함.


'Oracle > 오라클 양성반 15기' 카테고리의 다른 글

dbca. script, template 이것저것  (0) 2010.09.12
pl/sql exception  (0) 2010.09.12
merge into  (0) 2010.09.12
composite data type , cursor  (0) 2010.09.12
for update  (0) 2010.09.12