EXECUTE IMMEDIATE를 사용한 TRUNCATE 실패??? 0 6 12,006

by DJ메탈짱™ [PL/SQL] EXECUTE IMMEDIATE TRUNCATE [2009.12.18 10:00:32]


EXECUTE IMMEDIATE 를 사용해서 TRUNCATE TABLE 처리시 아래와 같이 사용하면 되자나요?

EXECUTE IMMEDIATE 'TRUNCATE TABLE 테이블명';

위의 경우에는 문제가 없는데.

EXECUTE IMMEDIATE 'TRUNCATE TABLE 계정.테이블명';

이렇게 명령어를 실행시키면 오류가 발생하더군요.

해당 계정의 테이블에 GRANT ALL 을 했는데도 동작이 안되던데...

계정간에는 불가능한건가요...

 

by 우빈 [2009.12.18 10:45:52]
plsql 안에서는 해당 권한을 직접 주셔야 되요.

create table 도 원리 기본적으로

resource, connect 롤을 유저에게 주면 테이블 생성이 가능한데

plsql안에서는 안되더군요.

권한을 직접 줘보세요. 테이블 액세스 권한이랑 truncate 권한이랑요.

grant all으로 하지 마시구요.


by 현 [2009.12.18 11:32:02]
GRANT DROP ANY TABLE to 계정;

이렇게 주시면 될 듯 합니다.

by 나무 [2009.12.18 13:34:45]
프로시져 권한은... EXECUTE ANY PROCEDURE 로 따로 주어야합니다

by DJ메탈짱™ [2009.12.18 13:38:07]
테이블 액세스 권한이랑 truncate 권한은 어떤 명령어 인가요???

그리고,,, GRANT DROP ANY TABLE TO 계정 해도 마찬가지네요...ㅜ.ㅡ

by 현 [2009.12.18 14:43:55]
GRANT DROP ANY TABLE TO 계정 ;
여기서 계정은 프로시져 호출 계정이구요,
이 권한은 오브젝트 오너 계정으로 접속한 후 실행 하셔야 합니다.

일반적으로 테이블 액세스 권한은 select,update,delete 등 dml을 얘기하구요,
truncate, drop, alter는 ddl을 얘기 합니다.
명령어는 grant로 동일 합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입