✨ DCL이란?
DCL은 유저를 생성하고 권한을 제어할 수 있는 DATA CONTROL LANGUAGE 명령어의 약자이다. 유저 별로 다른 권한을 줄 수 있는 것이라고 생각하면 쉽다. 예를 들어, 데이터를 사용하는 모든 유저에게 테이블을 삭제하는 권한을 주는 것이 아니라, 필요한 유저에게만 그 권한을 줄 수 있고, 어느 유저에게는 데이터를 편집할 수 있는 권한만, 어느 유저에게는 삭제와 추가가 가능한 권한까지 등 각자 필요한 권한만을 줄 수 있는 것이다.
사용자는 100개이상의 시스템 권한을 가질 수 있는데, 이것을 하나하나 사용자에게 권한을 주고 회수하는 것은 매우 비효율적이고 피곤하기 때문에 ROLE을 이용하여 간편하게 부여하게 된다.
🪡 ROLE?
ROLE은 부여할 권한을 정리해놓은 것이라고 보면 이해가 쉽다. ROLE은 시스템과 오브젝트 권한을 모두 부여하거나 회수할 수 있다.
예를 들어, 새로운 사용자에게 EMP 테이블의 VIEW 권한과 UPDATE 권한을 주고자 한다. 그렇다면 이 권한에 대한 ROLE을 만들어서 새로운 사용자에게 할당을 할 수 있고, 이 ROLE은 재사용이 가능하기 때문에 새로운 사용자 2에게도 같은 ROLE을 이용하여 권한을 부여할 수 있다. 권한에 대한 FUNCTION을 생성하는 것이라고 이해하면 쉬울 것이다.
🧶 +@
실제로 내가 금융권에서 프로젝트를 진행하면서 겪은 일인데, 금융권에서는 '전문' 이라는 시스템을 사용하게 된다. 이 전문이라는 건, 개발을 할 때 사용자가 DB에 직접 접근을 하는 것은 매우 위험한 일이기 때문에, 먼저 '내가 어떤 테이블의 어떤 필드를 사용하고 싶다' 라는 것을 보내게 되면, 해당 팀에서 컨펌 후에 그것만을 사용할 수 있는 권한이 내려진 사용자를 생성해서 주게 된다. 그렇게 되면 개발자는 해당하는 전문번호(아이디)로 요청한 권한만을 가진 용도의 유저로 최소한의 권한을 이용해 데이터에 접근을 하게 되는 것이다. 이러한 용도로 사용을 할 수 있다는 정도로 알면 좋을 것 같다 '-'b
'DBMS' 카테고리의 다른 글
인덱스 기본 (0) | 2024.04.04 |
---|---|
옵티마이저와 실행계획 (0) | 2024.04.04 |
절차형 SQL (0) | 2024.04.04 |
윈도우 함수(Window Function) (2) | 2024.03.29 |
그룹 함수 (0) | 2024.03.27 |