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

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

오라클 함수 권한 부여 방법

목차

  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

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

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

gent.tistory.com

--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;

Toplist

최신 우편물

태그