본문 바로가기
Oracle/운영

다른 유저 테이블 Truncate 시키는 권한

by 취미툰 2021. 10. 25.
반응형

일반적인 DML(INSERT,UPDATE,DELETE,SELECT)권한은 Oracle의 권한을 부여해서 제어가 가능합니다.

하지만 Truncate의 경우에는 일반적인 권한부여로는 제어할 수가 없는데요, 아래의 문구를 보시면 해당스키마의 테이블이거나 DROP ANY TABLE의 권한이 있어야 Truncate가 가능하다고 나와 있습니다. Truncate는 DML이 아닌 DDL로 분류되고 사용되기 때문에 이러한 권한부여가 필요하겠죠.

To truncate a table, the table must be in your schema or you must have the DROP ANY TABLE system privilege.

 

grant truncate~~가 아니라 DROP ANY TABLE 권한이 필요하다는 사실을 정리하면서 또 알게되네요

 

 

테스트 

 

1. 권한부여

SQL > grant drop any table to test2;

 

2.유저확인

SQL> show user;
USER is "TEST2"

 

3.다른 유저에서 truncate 수행

SQL> truncate table test.t1;

Table truncated.



 

 

출처 : 

https://docs.oracle.com/database/121/SQLRF/statements_10007.htm#SQLRF01707 

 

TRUNCATE TABLE

If table is not empty, then the database marks UNUSABLE all nonpartitioned indexes and all partitions of global partitioned indexes on the table. However, when the table is truncated, the index is also truncated, and a new high water mark is calculated for

docs.oracle.com

 

반응형

댓글