= Data Control Language =
{{tag>SQL Database}}
DB **사용자**를 **생성**하고 **권한 제어**하는 명령어
= 유저와 권한 =
== 유저 생성과 시스템 권한 부여 ==
* 권한 부여
^ GRANT CREATE ^USER TO 유저ID; ^유저 생성 권한 ^
^ ::: ^SESSION TO 유저ID; ^로그인 권한 ^
^ ::: ^TABLE FROM 유저ID; ^테이블 생성 권한 ^
grant resource, connect to 유저ID;
grant DBA to 유저ID;
* 권한 취소
REVOKE CREATE SESSION;
REVOKE CREATE TABLE FROM 유저ID;
* 유저 생성
CREATE USER 유저ID IDENTIFIED BY 암호;
* 유저 삭제
DROP USER 유저ID [CASCADE] --CASCADE : 해당 유저가 생성한 OBJECT도 삭제
== OBJECT에 대한 권한 부여 ==
* 특정 유저가 소유한 객체(OBJECT) 권한 부여
* OBJECT 권한 : 테이블, 뷰 등에 대한 **S/I/D/U** 작업 명령어 권한
예) 유저1이 생성한 테이블을 유저2에게 조회(SELECT) 권한 부여
GRANT SELECT ON 테이블/뷰명 TO 유저ID;
= ROLE을 이용한 권한 부여 =
* 권한 그룹 부여
* GRANT 하나하나 매번 할당하기에는 너무 불편함.
* ROLE은 유저에게 직접 SYSTEM 및 OBJECT 권한을 모두 부여할 수 있으며, 다른 ROLE을 포함하여 유저에게 부여될 수 있다.
\\
* ROLE 생성 및 부여
CREATE ROLE ROLE명;
GRANT ROLE명 TO 유저ID;