본문 바로가기

Oracle

Oracle Grant, Public 사용 예시(Usage Examples)

일할 때 대부분, 다른 담당자들이 처리해주는 권한부여

하지만 가끔 직접해야할 때가 생겨서 예제와 함께 정리하였습니다.

 

GRANT 문을 사용하여 bbb 계정에게 aaa.* 에 대한 SELECT, INSERT, UPDATE, DELETE 권한을 부여.
GRANT SELECT, INSERT, UPDATE, DELETE ON aaa.* TO bbb;
 
특정 테이블만 접근하도록 권한을 부여.
GRANT SELECT, INSERT, UPDATE, DELETE ON aaa.tbl_user TO bbb;
 
WITH ADMIN OPTION 옵션을 추가하면 bbb 계정이 다른 사용자에게 aaa.* 에 대한 권한을 부여할 수 있음.
GRANT SELECT, INSERT, UPDATE, DELETE ON aaa.* TO bbb WITH ADMIN OPTION;
 
PUBLIC 동의어를 사용하여 aaa.* 를 bbb 계정에서 사용할 수 있도록 테이블 이름을 변경.
CREATE PUBLIC SYNONYM tbl_user FOR aaa.tbl_user;
이렇게 할 경우, bbb계정이 아래와 같이 테이블에 접근가능.
SELECT * FROM tbl_user;
 
PUBLIC 동의어를 사용하면 bbb 계정이 aaa.* 에 대한 모든 권한 소유.
PUBLIC 동의어를 삭제하면 bbb 계정은 더 이상 테이블에 접근 불가.
 
 bbb 계정에게 부여된 권한을 확인
SELECT * FROM USER_TAB_PRIVS WHERE GRANTEE = 'BBB';