행위

Oracle ctxsys 설치

DB CAFE

thumb_up 추천메뉴 바로가기


1 CTXSYS 설치[편집]

1. SQL*Plus 에서 SYSDBA로 연결 한후 catctx.sql 호출.

SQL> show user;
SQL>@?/ctx/admin/catctx.sql CTXSYS SYSAUX TEMP LOCK

*Option 설명 : 
- CTXSYS : ctxsys 사용자의 패스워드 지정
- SYSAUX: ctxsys 사용자의 default tablespace명 지정
- TEMP: ctxsys 사용자의 temporary tablespace명 지정
- LOCK|NOLOCK: ctxsys 사용자 계정을 잠글 것인지, 잠금 해제 할 것인지 지정
만약 LOCK 으로 진행할경우 ctxsys 유저 사용전 
alter user account unlock 해주어야 한다

--> PL/SQL 처리가 정상적으로 처리 되었음을 확인 .

2. CTXSYS 유저로 접속하여 ORACLE text 를 사용할 언어를 지정하는 defalut sql 실행 - 지원하는 언어별 sql은 /ctx/admin/defaults 디렉토리에 - 예를들어 영어 와 한국어를 ORACLE text 시 사용하기 위해서는 /ctx/admin/defaults 디렉토리에서 drdefuk.sql 와 drdefko.sql 사용

SQL>@?/ctx/admin/defaults/drdefko.sql

--> 이단계에서 ORA955 에러 발생시 : Oracle text 설치전 ODM 을 설치하였을경우 발생하는 에러로 ,

    ODM 설치되어 있는 상태에서는 ctx public sysnonym 생성은 실패하나 , public synonym 이 odm 의 객체를 가리키는 
    상태가 되므로 정상동작. 

3. 모든 Oracle Text 객체가 CTXSYS 스키마에 정상 설치되었는지 확인

- context 기능이 instance 에 등록됬는지 여부와 Oracle text version 확인 .

SQL> Select comp_name, status, substr(version,1,10) as version
       From dba_registry
      Where comp_id = 'CONTEXT';

SQL> select substr(ctxsys.dri_version,1,10) VER_CODE from dual;

- CTXSYS 유저 객체 확인

SQL> Select count(*) 
       From dba_objects Where owner='CTXSYS' ;
SQL> Select object_type , count(*)
        From dba_objects  Where owner='CTXSYS' 
        Group by object_type ;

- CTXSYS유저 객체중 invalid 로 빠진 객체가 없어야 한다.

SQL> Select object_name, object_type, status
        From dba_objects 
        Where owner='CTXSYS' and status != 'VALID'
        Order by object_name ;

2 권한 추가[편집]

1. 접속 권한

ALTER USER CTXAPP ACCOUNT UNLOCK;

2. Roles for CTXSYS

GRANT CTXAPP TO CTXSYS WITH ADMIN OPTION;
GRANT RESOURCE TO CTXSYS;
ALTER USER CTXSYS DEFAULT ROLE ALL;

3.System Privileges for CTXSYS

GRANT ALTER SESSION TO CTXSYS;
GRANT CREATE JOB TO CTXSYS;
GRANT CREATE PUBLIC SYNONYM TO CTXSYS;
GRANT CREATE SESSION TO CTXSYS;
GRANT CREATE SYNONYM TO CTXSYS;
GRANT CREATE VIEW TO CTXSYS;
GRANT DROP PUBLIC SYNONYM TO CTXSYS;
GRANT INHERIT ANY PRIVILEGES TO CTXSYS;
GRANT MANAGE SCHEDULER TO CTXSYS;
GRANT SET CONTAINER TO CTXSYS;
GRANT UNLIMITED TABLESPACE TO CTXSYS;

4.Object Privileges for CTXSYS

GRANT SELECT ON SYS.ARGUMENT$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.CCOL$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.CDEF$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.COL$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.COLTYPE$ TO CTXSYS;
GRANT SELECT ON SYS.CON$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_COLL_TYPES TO CTXSYS;
GRANT SELECT ON SYS.DBA_CONSTRAINTS TO CTXSYS;
GRANT SELECT ON SYS.DBA_CONS_COLUMNS TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_DB_LINKS TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_INDEXES TO CTXSYS;
GRANT SELECT ON SYS.DBA_INDEXTYPES TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_JOBS TO CTXSYS;
GRANT SELECT ON SYS.DBA_JOBS_RUNNING TO CTXSYS;
GRANT SELECT ON SYS.DBA_OBJECTS TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_PART_KEY_COLUMNS TO CTXSYS;
GRANT SELECT ON SYS.DBA_PROCEDURES TO CTXSYS;
GRANT SELECT ON SYS.DBA_ROLES TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_ROLE_PRIVS TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_SEGMENTS TO CTXSYS;
GRANT SELECT ON SYS.DBA_SYNONYMS TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_SYS_PRIVS TO CTXSYS;
GRANT SELECT ON SYS.DBA_TABLES TO CTXSYS;
GRANT SELECT ON SYS.DBA_TAB_COLS TO CTXSYS;
GRANT SELECT ON SYS.DBA_TAB_COLUMNS TO CTXSYS;
GRANT SELECT ON SYS.DBA_TAB_PARTITIONS TO CTXSYS;
GRANT SELECT ON SYS.DBA_TAB_PRIVS TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_TRIGGERS TO CTXSYS;
GRANT SELECT ON SYS.DBA_TYPES TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_TYPE_ATTRS TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.DBA_USERS TO CTXSYS;
GRANT EXECUTE ON SYS.DBMS_LOCK TO CTXSYS;
GRANT EXECUTE ON SYS.DBMS_PIPE TO CTXSYS;
GRANT EXECUTE ON SYS.DBMS_PRIV_CAPTURE TO CTXSYS;
GRANT EXECUTE ON SYS.DBMS_REGISTRY TO CTXSYS;
GRANT SELECT ON SYS.GV_$DB_OBJECT_CACHE TO CTXSYS;
GRANT SELECT ON SYS.GV_$PARAMETER TO CTXSYS;
GRANT SELECT ON SYS.ICOL$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.IND$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.INDPART$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.LOB$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.LOBFRAG$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.OBJ$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.OPQTYPE$ TO CTXSYS;
GRANT SELECT ON SYS.PARTOBJ$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.SNAP$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.SYN$ TO CTXSYS WITH GRANT OPTION;
GRANT INHERIT PRIVILEGES ON USER SYS TO CTXSYS;
GRANT SELECT ON SYS.SYSAUTH$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.TAB$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.TABPART$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.TS$ TO CTXSYS WITH GRANT OPTION;
GRANT EXECUTE ON SYS.VALIDATE_CONTEXT TO CTXSYS;
GRANT SELECT ON SYS.VIEW$ TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.V_$DB_PIPES TO CTXSYS;
GRANT SELECT ON SYS.V_$PARAMETER TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.V_$RESOURCE TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.V_$SESSION TO CTXSYS WITH GRANT OPTION;
GRANT SELECT ON SYS.V_$THREAD TO CTXSYS WITH GRANT OPTION;
GRANT INHERIT PRIVILEGES ON USER XDB TO CTXSYS;
GRANT SELECT ON SYS."_BASE_USER" TO CTXSYS WITH GRANT OPTION;

3 일반사용자에 롤 권한[편집]

GRANT CTXAPP TO ABT_DEV;
GRANT CTXAPP TO ABT_APP;
GRANT CTXAPP TO ABT;

4 삭제[편집]

4.1 Oracle Text 삭제 (deinstall)[편집]

1. SYSDBA 로 연결하여 catnoctx.sql 호출 하여 실행 한다. 
SQL> sqlplus / as SYSDBA
SQL> @?/ctx/admin/catnoctx.sql