본문 바로가기

SQL

권한(GRANT, REVOKE)

--시스템(DBA) 권한
CREATE USER : 사용자를 생성하는 권한
DROP USER : 사용자를 삭제하는 권한
DROP ANY TABLE: 임의의 테이블을 삭제할 수 있는 권한
....

--시스템(일반 사용자를 관리하기 위한) 권한
CREATE SESSION : 데이터베이스에 접속할 수 있는 권한
CREATE TABLE : 사용자 스키마(계정)에서 테이블을 생성할 수 있는 권한
CREATE VIEW : 사용자 스키마에서 뷰를 생설할 수 있는 권한
CREATE SEQUENCE: 사용자 스키마에서 시퀀스를 생성할 수 있는 권한
CREATE PROCEDURE: 사용자 스키마에서 함수를 생성할 수 있는 권한(PL,SQL)
;
--WITH ADMIN OPTION: 관리자가 아니여도 부여받은 시스템 권한을 다른 사람에게 부여할 수 있는 권한
SELECT * FROM SYS.user_sys_privs;
SELECT * FROM SYS.ROLE_sys_privs;

--객체(TABLE, VIEW 등) 권한
GRANT SELECT ON EMP TO JAVA; --JAVA가 EMP테이블을 SELECT 할 수 있는 권한을 줌
GRANT INSERT,UPDATE,DELETE ON EMP TO JAVA; 

--특정 컬럼에 대한 UPDATE 권한 부여
GRANT UPDATE(SAL, COMM) ON EMP TO JAVA; --SAL,COMM만 업데이트 할 수 있는 권한을 줌

--사용자에게 부여된 권한 조회
SELECT * FROM SYS.user_tab_privs; --타인에게 어떤 권한을 부여했는지 조회(부분 권한 부여한 것은 조회X)
SELECT * FROM SYS.user_tab_privs_recd; --타인에게 받은 권한 조회

--권한 회수
REVOKE UPDATE ON EMP FROM JAVA;

--ROLE: 권한의 집합
SELECT * FROM SYS.role_sys_privs;
--사용자 정의 롤(ROLE)
CREATE ROLE MY_ROLE; --롤 생성
GRANT SELECT, INSERT, UPDATE, DELETE ON EMP TO MY_ROLE; --롤에 권한 부여
--팀원에게 롤 권한 부여
GRANT MY_ROLE TO JAVA;


--롤 내용 보기
SELECT * FROM SYS.user_role_privs;
SELECT * FROM SYS.role_tab_privs;

'SQL' 카테고리의 다른 글

시퀸스(SEQUENCE)  (0) 2019.12.31
뷰(VIEW)  (0) 2019.12.31
DB 기본 정리(데이터 삭제, 변경 등)  (0) 2019.12.26
상관관계 서브쿼리  (0) 2019.12.26
서브쿼리  (0) 2019.12.26