💡 본 글은 ‘실습과 함께하는! 데이터베이스 Oracle 12c’ 강의 내용을 바탕으로 정리하였습니다.
접근권한(Access Controll) 설정
DCL(Data Control Language)
- 권한 및 역할 설정하는 언어
- 권한 부여(
GRANT
), 회수(REVOKE
)로 나뉨
권한
- 시스템 권한
- 객체 권한
사용자 생성
-- 사용자 생성
CREATE USER 사용자이름 IDENTIFIED BY 비밀번호;
-- DB에 접속할 수 있도록 권한 부여
GRANT CREATE SESSION TO 사용자이름;
테이블 조회 권한
-- 조회 권한 부여
GRANT SELECT ON 테이블명 TO 사용자이름;
-- 조회 권한 회수
REVOKE SELECT ON 테이블명 FROM 사용자이름;
권한 목록 조회
-- 권한을 부여한 DBA의 경우
SELECT * FROM user_tab_privs_made;
-- 권한을 받은 DBA의 경우
SELECT * FROM user_tab_privs_recd;
역할 설정
역할(ROLE)
- 개별 테이블에 대한 CRUD 권한을 사용자 별로 지정하면 경우의 수가 테이블 수 * 사용자 수의 조합이 생김
- 이러한 문제점을 개선하기 위해서 롤(역할)을 정하고 역할 별 권한 설정 후 사용자에게 역할을 부여
- 사용자가 여러 개의 롤을 가질 수 있음(관리자, 사용자)
역할 생성
(문법)
CREATE ROLE 역할명;
역할 권한 설정
(문법)
GRANT SELECT ON 테이블명 TO 역할명;
GRANT SELECT, INSERT ON 테이블명 TO 역할명;
GRANT UPDATE(컬럼명) ON 테이블명 TO 역할명;
GRANT ALL ON 테이블명 TO 역할명;
사용자에게 역할 부여
(문법)
GRANT 역할 TO 사용자명;
사용자에게 역할 회수
(문법)
REVOKE ALL ON 주인사용자명.테이블명 FROM 사용자명;