본문 바로가기
DBMS/ORACLE

테이블 OWNER가 아닌 다른 유저로 인덱스 생성 시 필요 권한

by 드바 2022. 2. 28.
  • SK.T1 테이블이 있고 해당테이블에 SK2 유저가 SK2.T1_IX1 인덱스를 생성하려고 한다.
  • 테이블의 INDEX 권한 부여 시 인덱스 생성 가능

 

## SK2 유저가 인덱스 생성 시도
SQL> show user 
USER is "SK2"

-- 조회 가능 확인

SQL> select count(*) from sk.t1 ;
  COUNT(*)
----------
     72655

SQL> create index t1_ix1 on sk.t1(object_name) ;
create index t1_ix1 on sk.t1(object_name)
                          *
ERROR at line 1:
ORA-01031: insufficient privileges


## 관리자 권한으로 해당 테이블 권한 확인 및 index 권한 sk2 에 부여
SQL> SELECT grantee, owner, table_name, privilege FROM dba_tab_privs
  2  WHERE table_name = 'T1'
  3  ;

GRANTEE       OWNER   TABLE_NAME        PRIVILEGE
-------------------- -------------------- -------------------- ----------------------------------------
SK2      SK    T1        SELECT
SQL> grant index on sk.t1 to sk2 ;
Grant succeeded.

SQL> SELECT grantee, owner, table_name, privilege FROM dba_tab_privs
WHERE table_name = 'T1'
;
GRANTEE       OWNER   TABLE_NAME        PRIVILEGE
-------------------- -------------------- -------------------- ----------------------------------------
SK2      SK    T1        INDEX
SK2      SK    T1        SELECT
SQL> 

 

## SK2 로 인덱스 생성 재시도
SQL> create index t1_ix1 on sk.t1(object_name) ;
Index created.
SQL> 

댓글