문서유형ㅣ기술정보
분야ㅣ관리/환경설정
적용제품버전ㅣ7FS02PS
문서번호ㅣTADTI093
개요
TRUNCATE 권한은 모든 테이블 대상 권한과 특정 테이블 대상 권한으로 구분되며, 각 권한에 따라 별도의 파라미터 설정이 필요합니다.
DROP ANY TABLE 권한이 부여된 경우, TRUNCATE 파라미터 설정과 관계없이 임의의 스키마에 속한 모든 테이블에 TRUNCATE를 수행할 수 있습니다.
DROP ANY TABLE 권한이 부여된 경우, TRUNCATE 파라미터 설정과 관계없이 임의의 스키마에 속한 모든 테이블에 TRUNCATE를 수행할 수 있습니다.
방법
참고
- USE_TRUNCATE_PRIVILEGE 파라미터는 Tibero5 r73542 부터 설정이 가능합니다.
- USE_TRUNCATE_OBJ_PRIVILEGE 파라미터는 Tibero7.2.3 부터 설정이 가능합니다.
- Tibero7.2.2 이하 버전에서는 USE_TRUNCATE_PRIVILEGE 파라미터로 모든 TRUNCATE 권한을 제어할 수 있습니다.
1. TRUNCATE 권한
- TRUNCATE ANY TABLE : 임의의 스키마에 속한 모든 테이블에 TRUNCATE를 수행할 수 있는 권한입니다.
- TRUNCATE : 자신의 스키마에 속하지 않은 특정 테이블에 TRUNCATE를 수행할 수 있는 권한입니다.
2. USE_TRUNCATE_PRIVILEGE 파라미터 설정
해당 파라미터 기능을 활성화 해야 TRUNCATE ANY TABLE 권한을 부여 및 회수할 수 있습니다.
기본 설정은 USE_TRUNCATE_PRIVILEGE = NO 입니다.
USE_TRUNCATE_PRIVILEGE 파라미터 확인
SQL> show parameter USE_TRUNCATE_PRIVILEGE
NAME TYPE VALUE
------------------------------ -------- ------
USE_TRUNCATE_PRIVILEGE Y_N NO
이 상태에서는 truncate any table 권한을 부여할 수 없습니다.
SQL> grant truncate any table to testuser;
TBR-7002: Unsupported DDL.
또한 truncate any table 권한을 회수할 수도 없습니다.
SQL> revoke truncate any table from testuser;
TBR-7002: Unsupported DDL.
USE_TRUNCATE_PRIVILEGE 파라미터 "YES" 설정
USE_TRUNCATE_PRIVILEGE는 동적 적용이 가능한 파라미터로 운영 중에도 설정 변경이 가능합니다.
SQL> alter system set USE_TRUNCATE_PRIVILEGE = Y;
System altered.
SQL> show parameter USE_TRUNCATE_PRIVILEGE
NAME TYPE VALUE
------------------------------ -------- ------
USE_TRUNCATE_PRIVILEGE Y_N YES
truncate any table 권한이 testuser 유저에게 정상적으로 부여됩니다.
SQL> grant truncate any table to testuser;
Granted.
truncate any table 권한이 testuser 유저에게 정상적으로 회수됩니다.
SQL> revoke truncate any table from testuser;
Revoked.
3. USE_TRUNCATE_OBJ_PRIVILEGE 파라미터 설정
해당 파라미터 기능을 활성화 해야 자신의 스키마에 속하지 않은 특정 테이블에 대한 truncate 권한을 부여 및 회수 할 수 있습니다.
기본 설정은 USE_TRUNCATE_OBJ_PRIVILEGE = NO 입니다.
USE_TRUNCATE_OBJ_PRIVILEGE 파라미터 확인
SQL> show parameter USE_TRUNCATE_OBJ_PRIVILEGE
NAME TYPE VALUE
------------------------------ -------- ------
USE_TRUNCATE_OBJ_PRIVILEGE Y_N NO
이 상태에서는 truncate 권한을 부여할 수 없습니다.
SQL> grant truncate on testtable to testuser;
TBR-7002: Unsupported DDL.
또한 truncate 권한을 회수할 수도 없습니다.
SQL> revoke truncate on testtable from testuser;
TBR-7002: Unsupported DDL.
USE_TRUNCATE_OBJ_PRIVILEGE 파라미터 "YES" 설정
USE_TRUNCATE_OBJ_PRIVILEGE는 동적 적용이 가능한 파라미터로 운영 중에도 설정 변경이 가능합니다.
SQL> alter system set USE_TRUNCATE_OBJ_PRIVILEGE = Y;
System altered.
SQL> show parameter USE_TRUNCATE_OBJ_PRIVILEGE
NAME TYPE VALUE
------------------------------ -------- ------
USE_TRUNCATE_OBJ_PRIVILEGE Y_N YES
testtable 테이블에 대한 truncate 권한이 testuser 유저에게 정상적으로 부여됩니다.
SQL> grant truncate on testtable to testuser;
Granted.
testtable 테이블에 대한 truncate 권한이 testuser 유저에게 정상적으로 회수됩니다.
SQL> revoke truncate on testtable from testuser;
Revoked.
4. DROP ANY TABLE 권한
- DROP ANY TABLE : 임의의 스키마에 속한 모든 테이블을 제거할 수 있는 권한입니다.
해당 권한이 부여된 스키마의 경우 USE_TRUNCATE_PRIVILEGE / USE_TRUNCATE_OBJ_PRIVILEGE 파라미터 설정과 관계없이 임의의 스키마에 속한 모든 테이블에 TRUNCATE를 수행할 수 있습니다.
SQL> show parameter TRUNCATE
NAME TYPE VALUE
------------------------------ -------- ------
USE_TRUNCATE_PRIVILEGE Y_N NO
USE_TRUNCATE_OBJ_PRIVILEGE Y_N NO
SQL> truncate table tibero.t1;
TBR-7071: Schema object 'TIBERO.T1' was not found or is invalid.
SQL> conn sys/tibero
Connected to Tibero.
SQL> grant drop any table to testuser;
Granted.
SQL> conn testuser/testuser
Connected to Tibero.
tibero.t1 테이블에 대한 truncate가 정상적으로 수행됩니다.
SQL> truncate table tibero.t1;
Table 'TIBERO.T1' truncated.