Skip to main content

ClickHouse и ClickHouse Cloud поддерживают ограничения доступа на уровне строк и столбцов

ClickHouse и ClickHouse Cloud поддерживают ограничения доступа на уровне строк и столбцов для пользователей с доступом только для чтения, необходимые для реализации модели ролевого управления доступом (RBAC). Политики строк можно использовать, чтобы указать, какие строки будут возвращаться пользователю с доступом только для чтения при выполнении запроса к таблице. В ClickHouse Cloud по умолчанию включён SQL-управляемый рабочий процесс. Чтобы использовать этот рабочий процесс, выполните CREATE пользователя, предоставьте пользователю привилегии GRANT на таблицу, а затем задайте соответствующую ROW POLICY. Когда пользователь выполняет SELECT * FROM table, отображаются только строки, разрешённые политикой. Политики строк фильтруют данные таблицы, считываемые на данном сервере. Чтобы фильтровать запросы, проходящие через таблицу Distributed, создайте политику для базовой локальной таблицы на каждом сервере кластера: политику для самой таблицы Distributed нельзя применить к запросу, отправленному на удалённые серверы, поэтому такие операции чтения отклоняются вместо того, чтобы незаметно возвращать неотфильтрованные строки. Политика для локальной таблицы не применяется, когда инициатор отправляет уже сформированный план чтения, поэтому сохраняйте serialize_query_plan = 0 для пользователей, чьи политики строк должны применяться (см. issue #112891). Ограничения на уровне столбцов можно задать напрямую с помощью оператора GRANT, чтобы предоставить пользователям и ролям доступ к таблице. Пользователи могут включать в запрос только те столбцы, к которым у них есть доступ. Попытка выбрать ограниченные столбцы из таблицы, в которой у пользователя нет доступа ко всем указанным столбцам, например в запросе SELECT * FROM table, приведёт к ошибке о том, что у пользователя недостаточно прав.
Последнее изменение 14 августа 2026 г.