Skip to main content

ClickHouse와 ClickHouse Cloud는 모두 행 및 컬럼 수준의 접근 제한을 지원합니다

ClickHouse와 ClickHouse Cloud는 모두 역할 기반 접근 제어(RBAC) 모델을 구현하는 데 필요한 읽기 전용 사용자용 행 및 컬럼 수준의 접근 제한을 지원합니다. 행 정책(Row Policies)을 사용하면 읽기 전용 사용자가 테이블을 쿼리할 때 어떤 행이 반환될지 지정할 수 있습니다. ClickHouse Cloud는 기본적으로 SQL 기반 워크플로가 활성화되도록 구성되어 있습니다. 이 워크플로를 활용하려면 CREATE로 사용자를 생성하고, GRANT로 사용자에게 테이블 권한을 부여한 다음, 적절한 ROW POLICY를 설정하십시오. 사용자가 SELECT * FROM table을 실행하면 정책에서 허용한 행만 표시됩니다. 행 정책은 해당 서버에서 데이터를 읽는 테이블을 필터링합니다. 분산 테이블을 통해 전달되는 쿼리를 필터링하려면 클러스터의 각 서버에서 기본 로컬 테이블에 정책을 생성하십시오. Distributed 테이블 자체에 설정한 정책은 원격 서버로 전송되는 쿼리에 적용할 수 없으며, 필터링되지 않은 행을 조용히 반환하는 대신 이러한 읽기는 거부됩니다. 시작 노드가 이미 생성된 읽기 계획을 전송할 때는 로컬 테이블의 정책이 적용되지 않으므로, 행 정책을 적용해야 하는 사용자에 대해서는 serialize_query_plan = 0을 유지하십시오(이슈 #112891 참조). 컬럼 수준 제한은 GRANT statement를 사용해 직접 지정할 수 있으며, 이를 통해 사용자와 역할에 테이블 수준 접근 권한을 부여할 수 있습니다. 사용자는 쿼리에 자신에게 접근 권한이 있는 컬럼만 포함할 수 있습니다. 사용자가 지정된 모든 컬럼에 대한 접근 권한이 없는 테이블에서 제한된 컬럼을 선택하면(예: SELECT * FROM table 쿼리), 권한이 부족하다는 오류가 반환됩니다.
마지막 수정일 2026년 8월 14일