반응형

다른 유저에게 테이블 tuuncate 권한 부여하고자 할때

아래 프로시저를 생성하여 프로시져를 실행권한을 주면 다른 유저도 truncate를 할 수있다.

 

- 일반 table_truncate(다른 유저가 truncate할때) 
CREATE OR REPLACE PROCEDURE SCOTT.TABLE_TRUNCATE(tname in varchar2)
as
begin
execute immediate 'truncate table SCOTT.'||upper(tname);
end;
/
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO TRIGER;
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO HR;

기본적으로 다른 유저가 해당 유저 테이블을 truncate 할수없을때 프로시져로 처리

- patition table_truncate(다른 유저가 truncate할때) 
CREATE OR REPLACE PROCEDURE SCOTT.TRUNCATE_PARTITION(P_TNAME in varchar2,P_PNAME IN VARCHAR2) 
 AS 
  v_tname varchar2(40); 
  v_pttn_nm varchar2(40); 
 BEGIN 
    execute immediate 'ALTER TABLE SCOTT.'||UPPER(P_TNAME)||' TRUNCATE PARTITION '||UPPER(P_PNAME); 
 end;
/
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO TRIGER;
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO HR;

기본적으로 다른 유저가 해당 유저 테이블을 truncate 할수없을때 프로시져로 처리


- subpatition table_truncate(다른 유저가 truncate할때)
CREATE OR REPLACE PROCEDURE SCOTT.TRUNCATE_SUBPARTITION(P_TNAME in varchar2,P_PNAME IN VARCHAR2) 
 AS 
  v_tname varchar2(40); 
  v_pttn_nm varchar2(40); 
 BEGIN 
    execute immediate 'ALTER TABLE SCOTT.'||UPPER(P_TNAME)||' TRUNCATE SUBPARTITION '||UPPER(P_PNAME); 
 end;
/
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO TRIGER;
GRANT EXECUTE ON SCOTT.TABLE_TRUNCATE TO HR;

기본적으로 다른 유저가 해당 유저 테이블을 truncate 할수없을때 프로시져로 처리

'DBMS > Oracle' 카테고리의 다른 글

index parallerl / nologging상태 체크  (0) 2022.07.04
12c이후부터 lock 모니터링 권한 오류시  (0) 2022.07.04
Control file 관리  (0) 2022.07.04
DB LINK 생성관리  (0) 2022.07.04
delete 문 timestamp 이용 복구하는 방법  (0) 2022.07.04

+ Recent posts