dongdorodongdong
DCL 본문
정의
- Data Control Language
- 유저를 생성하고 권한을 제어할 수 있는 명령어
유저, 권한
- Oracle
- 유저를 통해 DB에 접속하는 형태
- ID, PW를 통해 인스턴스에 접속을 하고, 그에 해당하는 스키마에 오브젝트 생성 등의 권한을 부여 - SQL Server
- 인스턴스 내 다수의 데이터베이스에 연결하여 작업하기 위해 유저를 생성한 후 로그인과 유저를 매핑
- 특정 유저는 특정 데이터베이스 내 특정 스키마에 대한 권한을 부여 받을 수 있음 - 시스템 권한
- 유저 생성 후 데이터베이스 접속한다고 해서 Object (테이블, 뷰, 인덱스 등)에 접할 수 없다.
- 사용자가 실행하는 DDL 문장은 그에 해당하는 권한이 있어야만 실행할 수 있다. - Object 권한
- 특정 Object에 대한 DML 작업 명령어를 의미
Role을 이용한 권한 부여
- ROLE
- 유저에게 허가 할 수 있는 권한들의 집합
- 권한 부여와 회수를 쉽게 할 수 있다.
- CREATE ROLE권한을 가진 유저에 의해 생성된다.
- 한 유저가 여러개의 ROLE을 엑세스할 수 있고, 여러 유저에게 같은 ROLE을 부여할 수 있다.
- 유저는 ROLE에 ROLE을 부여할 수 있다.
- DBA가 유저마다 권한을 부여한다면 관리하기가 힘들다. 따라서 ROLE을 생성하여 ROLE만 유저에게 지정을 한다면 효율적으로 권한을 관리할 수 있다. - ROLE 부여 코드
-
CREATE ROLE manager; -- ROLE 생성
GRANT CREATE SESSION, CREATE TABLE TO manager; -- ROLE에 권한 부여
GRANT manager TO scott, test; -- 권한이 부여된 ROLE을 유저나 ROLE에 부여