오라클 FUNCTION 권한 조회 - olakeul FUNCTION gwonhan johoe

오라클에서 다른 스키마의 함수 실행(사용) 권한을 부여하기 위해서는 "GRANT EXECUTE" 구문을 사용하면 된다. 그리고 함수의 생성 또는 컴파일 권한을 부여하기 위해서는 "GRANT CREATE FUNCTION" 구문을 사용할 수 없고 "GRANT CREATE PROCEDURE" 구문을 사용하여 함수 생성 권한을 부여할 수 있다.

오라클 FUNCTION 권한 조회 - olakeul FUNCTION gwonhan johoe
오라클 함수 권한 부여 방법

목차

  1. 함수 실행 권한 부여 (EXECUTE)
  2. 함수 생성 권한 부여 (CREATE)

함수 실행 권한 부여 (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 문을 사용하여 권한을 제거(회수)할 수 있다.

[Oracle] 테이블 권한 부여 방법 (GRANT, REVOKE)

오라클에서 다른 스키마(사용자)에 생성된 테이블의 DML(SELECT, INSERT, UPDATE, DELETE ) 권한을 부여하기 위해서는 GRANT 문을 사용하면 된다. GRANT CREATE ANY TABLE 권한을 부여하면 다른 스키마에 테이블을.

gent.tistory.com

오라클 FUNCTION 권한 조회 - olakeul FUNCTION gwonhan johoe

[Oracle] 시스템 권한 부여 방법 (GRANT, REVOKE)

오라클에서 시스템 권한을 부여하거나 회수(제거) 하기 위해서는 GRANT, REVOKE 문을 사용하면 된다. 사용자를 생성 후 시스템 권한이 부여되어야 데이터베이스 접속(로그인)이 가능하고 테이블 생

gent.tistory.com

오라클 FUNCTION 권한 조회 - olakeul FUNCTION gwonhan johoe

--1. 사용자에게 부여된 시스템 권한 확인
SELECT *
 FROM DBA_SYS_PRIVS
WHERE GRANTEE = '사용자명';

--2. 사용자에게 부여된 롤 확인(시스템 권한이 롤에 포함됨)
SELECT *
 FROM DBA_ROLE_PRIVS
WHERE GRANTEE = '사용자명';

--3. 사용자에게 부여된 롤에 부여된 시스템 권한 확인
SELECT *
 FROM DBA_SYS_PRIVS
WHERE GRANTEE = '롤명';

--4. 타 사용자에게 부여한 객체(테이블등)권한 확인
SELECT *
 FROM DBA_TAB_PRIVS
WHERE OWNER = '테이블소유자명';

SELECT *
 FROM DBA_TAB_PRIVS
WHERE GRANTEE = '권한부여자명';
권한 부여
--1. 테이블 권한 주기
grant select, insert, update, delete on [테이블명] TO [사용자명]

--2. 함수 권한 주기
grant EXECUTE on [테이블명] to [사용자명];

--3. 시퀀스 권한 주기
grant select,alter on [시퀀스명] to [사용자명];

필요시 테이블/프로시져에 대한 권한을 다른 계정에 부여할 경우가 생긴다.

예를 들어서,

EAI를 통해 타 시스템으로부터 데이터를 I/F받을 경우에

중간 I/F테이블을 구성하는 경우가 있다.

[ 타시스템 ] <-- EAI --> [ IF계정 테이블 -> [JOB[프로시져 수행] -> 업무계정 테이블] ]

이렇게되면 I/F테이블에 대한 Access권한을 업무 계정에 부여하여 사용한다.

테이블에 대한 권한부여 / 회수

GRANT ALL ON 테이블명 TO 계정;      -- ALL 권한
GRANT SELECT ON 테이블명 TO 계정;   -- 조회 권한
GRANT UPDATE ON 테이블명 TO 계정;   -- 수정 권한
GRANT DELETE ON 테이블명 TO 계정;   -- 삭제 권한
GRANT INSERT ON 테이블명 TO 계정;   -- 등록 권한

REVOKE ALL ON 테이블명 FROM 계정;     -- ALL 권한
REVOKE SELECT ON 테이블명 FROM 계정;  -- 조회 권한
REVOKE UPDATE ON 테이블명 FROM 계정;  -- 수정 권한
REVOKE DELETE ON 테이블명 FROM 계정;  -- 수정 권한
REVOKE INSERT ON 테이블명 FROM 계정;  -- 수정 권한

GRANT의 경우 구문 마지막부분에 WITH GRANT OPTION 옵션을 넣을경우 권한을 부여받은 계정도

권한을 부여할 수 있는 권한이 생긴다.

프로시져 수행에 대한 권한부여 / 회수

GRANT EXECUTE ON 계정.프로시져명 TO 계정;
REVOKE EXECUTE ON 계정.프로시져명 FROM 계정;

권한부여 여부 확인

SELECT GRANTEE,  --부여된 계정
       OWNER,    --소유자
       TABLE_NAME, --테이블이름
       GRANTOR, --부여한 계정
       PRIVILEGE  --권한
 FROM USER_TAB_PRIVS;