Управление доступом к данным
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.
Связанные команды
- Просмотр политик строк: SHOW ROW POLICY
- Создание политики строк: CREATE ROW POLICY
Примеры политик строк
-
Разрешить пользователю
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.
Связанные команды
Примеры прав доступа к столбцам
-
Предоставить пользователю
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.