다른 유저에게 테이블 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 |