오라클에서 다른 스키마의 함수 실행(사용) 권한을 부여하기 위해서는 "GRANT EXECUTE" 구문을 사용하면 된다. 그리고 함수의 생성 또는 컴파일 권한을 부여하기 위해서는 "GRANT CREATE FUNCTION" 구문을 사용할 수 없고 "GRANT CREATE PROCEDURE" 구문을 사용하여 함수 생성 권한을 부여할 수 있다.
목차 |
함수 실행 권한 부여 (EXECUTE)
특정 함수의 실행 권한 부여
-- 함수 실행 권한 부여
GRANT EXECUTE ON hr.fn_helloworld TO scott;
-- 함수 실행 권한 제거(회수)
REVOKE EXECUTE ON hr.fn_helloworld FROM scott;
GRANT EXECUTE ON [스키마.함수명] TO [사용자 계정]
다른 스키마(hr)에 생성된 특정 함수의 실행 권한을 부여하기 위해서는 GRANT 문을 사용하면 된다.
함수의 실행 권한을 제거하기 위해서는 REVOKE 문을 사용해서 권한을 회수하면 된다.
모든 함수의 실행 권한 부여
-- 모든 함수 실행 권한 부여
GRANT EXECUTE ANY PROCEDURE TO scott;
-- 모든 함수 실행 권한 제거(회수)
REVOKE EXECUTE ANY PROCEDURE FROM scott;
특정 함수명을 지정하지 않고 모든 함수의 실행 권한을 부여하기 위해서는 EXECUTE ANY PROCEDURE 구문을 사용하면 된다.
함수 생성 권한 부여 (CREATE)
자신의 스키마에 함수 생성 권한 부여
-- 자신의 스키마에 함수 생성 권한 부여
GRANT CREATE PROCEDURE TO scott;
-- 자신의 스키마에 함수 생성 권한 제거(회수)
REVOKE CREATE PROCEDURE FROM scott;
CREATE PROCEDURE 구문은 자신의 스키마(scott)에 함수를 생성할 수 있는 권한을 부여한다.
자신의 스키마에 함수 생성(CREATE), 수정(REPLACE), 제거(DROP)를 할 수 있다.
모든 스키마의 함수 생성 권한 부여
-- 모든 스키마에 함수 생성 권한 부여
GRANT CREATE ANY PROCEDURE TO scott;
-- 모든 스키마에 함수 삭제 권한 부여
GRANT DROP ANY PROCEDURE TO scott;
CREATE ANY PROCEDURE 구문은 자신의 스키마뿐만 아니라, 다른 스키마(hr 등)에 함수를 생성할 수 있다.
함수를 제거할 수 있는 DROP 권한이 필요할 경우 추가로 권한을 부여해야 한다.
-- 모든 스키마에 함수 생성 권한 제거(회수)
REVOKE CREATE ANY PROCEDURE FROM scott;
-- 모든 스키마에 함수 생성 삭제 제거(회수)
REVOKE DROP ANY PROCEDURE FROM scott;
REVOKE 문을 사용하여 권한을 제거(회수)할 수 있다.