RBAC — User/Role/GRANT로 권한을 통제한다
ClickHouse Lightweight DELETE 및 RBAC 공식 문서·기술 블로그 종합 (웹 리서치, 2026) — ClickHouse 공식 문서(guides/developer/mutations, best-practices/avoid-mutations, operations/access-rights) + ClickHouse 공식 블로그 ClickHouse 공식문서 Access control and account management
이 모듈을 다 읽으면
- User Account에 권한을 직접 주는 대신 Role을 매개로 부여하는 이유를 설명할 수 있다
- 역할 상속과 WITH GRANT OPTION이 각각 무엇을 가능하게 하는지 설명할 수 있다
clickhouse-learn-28에서 다룬 ON CLUSTER가 스키마 변경을 클러스터 전체에 전파하는 방법이었다면, 이 모듈은 그 스키마·데이터에 '누가 접근할 수 있는지'를 통제하는 RBAC(Role-Based Access Control) 모델을 정리한다.
User Account, Role, Settings Profile, Quota — 네 가지 구성요소
ClickHouse의 RBAC는 네 가지 개체로 이뤄진다 — User Account(실제 로그인 계정), Role(사용자에게 부여할 수 있는, 이름이 붙은 권한·설정·제약의 묶음), Settings Profile(쿼리 실행 관련 설정 묶음), Quota(리소스 사용량 제한). 권한을 사용자 계정에 하나하나 직접 주는 대신 Role에 모아두고 그 Role을 사용자에게 부여하는 방식을 쓰면, 'analyst', 'writer', 'admin' 같은 직무 단위로 권한을 관리할 수 있어 사용자가 늘어나도 권한 관리가 흐트러지지 않는다.
핵심 포인트
- 네 구성요소: User Account/Role(권한·설정·제약 묶음)/Settings Profile/Quota
- 권한을 사용자 개인이 아니라 Role에 모아 관리 — analyst/writer/admin 같은 직무 단위로 부여해 사용자가 늘어나도 관리가 흐트러지지 않음
GRANT/REVOKE와 역할 상속, WITH GRANT OPTION
권한은 GRANT로 사용자나 Role에 부여하고 REVOKE로 회수하며, SHOW GRANTS로 현재 부여된 권한을 확인할 수 있다. Role은 다른 Role에도 부여될 수 있어 상속 구조를 만들 수 있다 — 예를 들어 GRANT junior_reader TO senior_reader라고 하면 senior_reader는 junior_reader가 가진 권한을 전부 물려받는다. WITH GRANT OPTION을 붙여 권한을 부여하면, 그 권한을 받은 사용자/역할이 같은 수준 이하의 권한을 다른 사용자에게 다시 부여(재위임)할 수 있게 된다 — 이는 관리자가 모든 권한 부여를 직접 처리하지 않고 일부를 위임할 수 있게 하는 장치다.
핵심 포인트
- GRANT(부여)/REVOKE(회수)/SHOW GRANTS(확인) — Role은 다른 Role에도 부여 가능해 상속 구조를 만들 수 있음(예: junior_reader→senior_reader)
- WITH GRANT OPTION: 부여받은 권한을 같은 수준 이하로 다른 사용자에게 재위임할 수 있게 하는 옵션 — 관리자의 권한 부여 작업을 일부 위임 가능