특정 SQL문을 실행하기 위한 권리
DCL은 각 시스템 객체에 대한 권한을 부여, 제거하는 명령어이다.
데이터베이스에 직접적인 영향을 줄 수 있는 권한으로 오로지 DBA로 부터만 권한을 위임받을 수 있다.
각 객체(TABLE)에 대해 접근할 수 있는 권한으로 DBA 또는 객체 소유자에게 위임받을 수 있다. 하지만 보통 DBA로부터 권한을 위임받는 것이 일반적이다.
사용자에게 부여할 수 있는 권한을 모아노은 객체로 이를 사용하면 권한 관리가 좀 더 편리해 질 수 있다.
하지만 무분별하게 사용할 경우 같은 권한이 중복되어 부여될 수 있으니 주의해야 한다.
select * from user_sys_privs;

hr계정에서 위 코드를 실행하면 dba로 받은 시스템권한을 PRIVILEGE칼럼을 통해 확인할 수 있다.
단, ROLE을 통해 부여받은 권한을 확인할 수 없다.
부여받은 권한의 내용은 다음과 같다.
select * from session_roles;

select * from role_sys_privs;

-- 내가 받은 객체 권한 또는 내가 부여한 객체 권한 확인
select * from user_tab_privs;

-- 내가 받은 롤안에 객체 권한 확인
select * from role_tab_privs;

select privilege from role_sys_privs
union all
select privilege from user_sys_privs
order by 1;
