> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-revert-104359-revert-104251-parquet-single.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ClickHouse는 행 수준 및 컬럼 수준 보안을 지원하나요?

> ClickHouse 및 ClickHouse Cloud의 행 수준 및 컬럼 수준 접근 제한과, 정책을 사용해 역할 기반 접근 제어(RBAC)를 구현하는 방법을 알아보십시오.

<div id="clickhouse-and-clickhouse-cloud-both-support-row-and-column-level-access-restrictions">
  ## ClickHouse와 ClickHouse Cloud는 모두 행 및 컬럼 수준의 접근 제한을 지원합니다
</div>

ClickHouse와 ClickHouse Cloud는 모두 역할 기반 접근 제어(RBAC) 모델을 구현하는 데 필요한 읽기 전용 사용자용 행 및 컬럼 수준의 접근 제한을 지원합니다.

[행 정책(Row Policies)](/ko/concepts/features/security/access-rights#row-policy-management)을 사용하면 읽기 전용 사용자가 테이블을 쿼리할 때 어떤 행이 반환될지 지정할 수 있습니다. ClickHouse Cloud는 기본적으로 SQL 기반 워크플로가 활성화되도록 구성되어 있습니다. 이 워크플로를 활용하려면 [CREATE](/ko/reference/statements/create/user)로 사용자를 생성하고, [GRANT](/ko/reference/statements/grant)로 사용자에게 테이블 권한을 부여한 다음, 적절한 [ROW POLICY](/ko/concepts/features/security/access-rights#row-policy-management)를 설정하십시오. 사용자가 `SELECT * FROM table`을 실행하면 정책에서 허용한 행만 표시됩니다.

행 정책은 해당 서버에서 데이터를 읽는 테이블을 필터링합니다. [분산](/ko/reference/engines/table-engines/special/distributed) 테이블을 통해 전달되는 쿼리를 필터링하려면 클러스터의 각 서버에서 기본 로컬 테이블에 정책을 생성하십시오. `Distributed` 테이블 자체에 설정한 정책은 원격 서버로 전송되는 쿼리에 적용할 수 없으며, 필터링되지 않은 행을 조용히 반환하는 대신 이러한 읽기는 거부됩니다. 시작 노드가 이미 생성된 읽기 계획을 전송할 때는 로컬 테이블의 정책이 적용되지 않으므로, 행 정책을 적용해야 하는 사용자에 대해서는 [`serialize_query_plan = 0`](/ko/reference/settings/session-settings/serialize#serialize_query_plan)을 유지하십시오([이슈 #112891](https://github.com/ClickHouse/ClickHouse/issues/112891) 참조).

컬럼 수준 제한은 [GRANT statement](/ko/reference/statements/grant)를 사용해 직접 지정할 수 있으며, 이를 통해 사용자와 역할에 테이블 수준 접근 권한을 부여할 수 있습니다. 사용자는 쿼리에 자신에게 접근 권한이 있는 컬럼만 포함할 수 있습니다. 사용자가 지정된 모든 컬럼에 대한 접근 권한이 없는 테이블에서 제한된 컬럼을 선택하면(예: `SELECT * FROM table` 쿼리), 권한이 부족하다는 오류가 반환됩니다.
