Перейти к содержимому
Последнее обновление

Управление доступом к данным

Apache Doris предоставляет три механизма: политики строк (Row Policy), права доступа к столбцам (Column Permission) и маскирование данных (Data Masking). Они позволяют администраторам детально управлять доступом к конфиденциальным данным на уровне строк, столбцов и содержимого полей. В этом документе описаны принципы работы этих механизмов, их ограничения и типичные примеры использования.

Сценарии использования​

СценарийРекомендуемый механизмОписание
Разным пользователям должны быть видны только определённые строки таблицы (например, для изоляции данных по регионам, арендаторам или отделам)Политики строк (Row Policy)Автоматически добавляет к запросу предикат фильтрации
Разным пользователям должен быть доступен только определённый набор столбцов таблицы (например, чтобы скрыть столбцы с зарплатами или номерами телефонов)Права доступа к столбцам (Column Permission)Предоставляет право Select_priv только на указанные столбцы
Конфиденциальные поля необходимо частично скрыть или заменить (например, отображать номер удостоверения личности или банковской карты как ***)Маскирование данных (Data Masking)Позволяет настроить политику маскирования через Apache Ranger

Предварительные требования​

  • У текущего пользователя есть права на управление целевым объектом (например, привилегия GRANT).
  • Маскирование данных зависит от Apache Ranger. Сначала настройте интеграцию с Ranger (см. Авторизация через Apache Ranger).
  • Ни один из трёх механизмов не действует на пользователей по умолчанию root и admin.

Политики строк (Row Policy)​

Политики доступа на уровне строк в Doris позволяют детально управлять доступом к конфиденциальным данным. С помощью политик безопасности, заданных на уровне таблицы, можно определить, какие пользователи или роли могут обращаться к конкретным записям таблицы.

Принцип работы​

Если для пользователя настроена политика строк (Row Policy), Doris автоматически добавляет к запросу предикат, заданный в этой политике.

Ограничения​

  • Политики строк нельзя задать для пользователей по умолчанию root и admin.

Примеры политик строк​

  1. Разрешить пользователю test запрашивать из таблицы table1 только строки, для которых выполняется условие c1='a':

    CREATE ROW POLICY test_row_policy_1 ON test.table1 
    AS RESTRICTIVE TO test USING (c1 = 'a');

Права доступа к столбцам (Column Permission)​

Права доступа к столбцам в Doris позволяют детально управлять доступом к таблицам. Можно предоставить права только на определённые столбцы таблицы, чтобы указать, каким пользователям или ролям они доступны.

В настоящее время для прав доступа к столбцам поддерживается только Select_priv.

  • Предоставление прав: GRANT
  • Отзыв прав: REVOKE

Примеры прав доступа к столбцам​

  1. Предоставить пользователю user1 право запрашивать столбцы col1 и col2 таблицы tbl:

    GRANT Select_priv(col1,col2) ON ctl.db.tbl TO user1

Маскирование данных (Data Masking)​

Маскирование данных — это способ защиты конфиденциальных данных. Оно изменяет, заменяет или скрывает исходные данные так, чтобы после маскирования они сохраняли определённый формат и характеристики, но больше не содержали конфиденциальной информации.

Например, администратор может заменить часть или все цифры в конфиденциальных полях, таких как номера кредитных карт и удостоверений личности, звёздочками * или другими символами, а настоящие имена — псевдонимами.

Начиная с версии 2.1.2, Doris поддерживает настройку политик маскирования для столбцов через Apache Ranger Data Masking. В настоящее время это единственный поддерживаемый способ настройки, доступный через Apache Ranger.

Маскирование данных не действует для пользователя admin или root.

Часто задаваемые вопросы​

Вопрос: Для пользователя root или admin настроена политика строк (Row Policy) или маскирование данных, но настройка не действует.​

Ни один из трёх механизмов не действует на суперпользователей по умолчанию root и admin. Для проверки используйте обычного пользователя, работающего с данными.

Вопрос: После предоставления прав доступа к столбцам запросы по-прежнему завершаются ошибкой из-за недостаточных прав.​

В настоящее время для прав доступа к столбцам поддерживается только Select_priv. Убедитесь, что в команде предоставления прав указана эта привилегия и что права предоставляются на нужный Catalog, базу данных или таблицу.

Вопрос: Политика маскирования данных не действует.​

Маскирование данных необходимо настраивать через Apache Ranger; для него требуется Doris версии 2.1.2 или более поздней. Убедитесь, что интеграция с Ranger настроена, политика активна, а текущий пользователь — не root и не admin.