[Создание промежуточной платформы данных] Идеи дизайна прав доступа к данным
[Создание промежуточной платформы данных] Идеи дизайна прав доступа к данным

[Серия по созданию промежуточной платформы данных № 5] Разрешения на промежуточную платформу данных

Безопасность данных является основной функцией построения центра обработки данных. В этой статье в основном будет представлен важный модуль безопасности данных — разрешения на данные, включая некоторые идеи дизайна для разрешений на уровне строк данных и разрешений на уровне столбцов. Или. у вас есть этот план, я верю, что эта статья определенно принесет вам новое вдохновение.

1. Что такое разрешения на данные?

Разрешения на данные относятся к активам данных, к которым пользователи могут получить доступ и которыми они могут управлять, например, к определенной таблице данных, полю данных и т. д. Разрешения на данные обеспечивают безопасность и соответствие активов данных. Благодаря управлению разрешениями на данные можно лучше контролировать доступ пользователей к ресурсам данных и операции с ними, что повышает ценность центра обработки данных.

2. Цели разрешения данных

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

3. Процесс системы разрешения данных

Разрешения на данные в основном состоят из трех частей: уровня приложения, уровня обслуживания и уровня выполнения. Как показано на рисунке ниже:

общий процесс
общий процесс

Основная идея заключается в том, что все разрешения на строки и столбцы действуют на определенный интерфейс API службы данных или модель отчета BI (точнее, SQL), а затем применяются к бизнес-персоналу, который просматривает отчет или вызывает интерфейс API службы данных. соответствующие разрешения на уровне строк и столбцов, поэтому, когда один и тот же отчет или интерфейс API вызываются разными людьми, видимые данные будут противоречивыми, что реализует контроль разрешений на уровне строк данных.

  • Прикладной уровень

Включая правила настройки разрешений страниц и бизнес-стороны, вызывающие API-интерфейсы службы данных (как описано в главе о службе данных, всем бизнес-сторонам не разрешено напрямую подключаться к хранилищу данных);

  • уровень обслуживания

Все запросы SQL к базовым данным хранилища данных будут перехватываться службой разрешений данных, а исходный SQL будет переписан посредством проверки разрешений и перехвата SQL;

  • Уровень исполнения

Хранилище данных реального времени, построенное на базе Apache Doris, служит уровнем исполнения, который выполняет операторы SQL, модифицированные службой разрешений данных, и возвращает результаты выполнения на сторону приложения;

4. Разработка и реализация разрешений на данные

В разрешениях на данные пользователи делятся на три уровня: пользователи белого списка, пользователи правил и другие пользователи.

  • Белый список пользователей

К пользователям белого списка относятся пользователи, для которых правила неэффективны и имеют наивысший приоритет. Если пользователь одновременно является пользователем правила и пользователем белого списка, то при определении разрешений ему будет присвоен приоритет как пользователю белого списка. Пользователь белого списка может получить доступ ко всем данным в наборе данных, независимо от недействительных правил.

  • Правила пользователей

Пользователи, включенные во все правила этого набора данных (тот же SQL). Если пользователь не входит в белый список, то проверка будет производиться согласно имеющимся у него на данный момент правилам разрешений.

  • другие пользователи

«Другие пользователи» относятся ко всем пользователям, кроме пользователей белого списка и пользователей правил. Эта группа пользователей имеет два атрибута разрешений: все разрешения и отсутствие разрешений. Наличие всех разрешений означает, что другие пользователи могут просматривать все данные в наборе данных без каких-либо ограничений. Отсутствие разрешений означает, что на бумаге нет разрешения задачи на просмотр данных в наборе данных.

4.1 Разрешения на уровне строк

Разрешения на уровне строка в операторе SQL,Мы можем понимать это как добавлениеWHEREсостояние。Конкретный дизайн страницы конфигурации выглядит следующим образом.:

Объекты расширения полномочий: это могут быть основаны на реальном сценарии развития компании, а также могут быть роли персонала, отделы кадров и т. д.

Правила расширения прав и возможностей: Глубина правил может быть ограничена тремя уровнями (в соответствии с фактическими потребностями), но взаимосвязь между этими тремя уровнями может быть только и-или-иилиили-и-илиэти два способа,Это иSQLвWHEREсостояние Связанные со сращиванием。

Каждое конкретное правило можно добавить в столбец условий редактирования. Здесь следует отметить, что все поля фильтрации могут быть только полями в модели набора данных (то есть полями после SELECT). В настоящее время существует три способа фильтрации полей: фильтрация перечисления, фильтрация меток и условная фильтрация.

  • Перечисляемый фильтр

Он перечисляет несколько фиксированных значений для конкретных полей, и пользователи могут получить доступ только к данным, связанным с этими значениями;

  • Фильтр тегов

Определите набор тегов, и пользователи формируют отношения с тегами. Каждый пользователь имеет другое значение для одного и того же тега. Это также эквивалентно перечислению.

  • Условная фильтрация

Определено множество методов фильтрации, например: содержит, начинается с, заканчивается на, больше, равно, меньше и т. д.;

Выше описан метод проектирования и процесс настройки разрешений на уровне строк для набора данных. Позвольте мне кратко показать вам два эффекта.

Сначала мы определяем набор данныхDATASET-AстандартныйSQL : "SELECT xxx FROM xxx "。

Образец 1

Пользователь может только просматриватьDATASET-Aнабор данныхидентификатор базы данныхПоля"2,3,4-дюймовые данные,Правила настроены следующим образом:

После перехвата и перезаписи разрешений на данные фактический SQL для запроса к хранилищу данных становится следующим:

Язык кода:sql
копировать
SELECT xxx
FROM 
    (SELECT xxx
    FROM xxx) _D_S_A_
WHERE _D_S_A_.`db_id` IN (2, 3, 4)
Образец 2

Пользователь может просмотретьDATASET-Aнабор данныхидентификатор базы данныхПоля"2,3,4-дюймовые данные,Вы также можете просмотретьдвигатель = "Дорис"иливремя создания> "2021-11-01"данные,Правила настроены следующим образом:

После перехвата и перезаписи разрешений на данные фактический SQL для запроса к хранилищу данных становится следующим:

Язык кода:sql
копировать
SELECT xxx
FROM 
    (SELECT xxx
    FROM xxx) _D_S_A_
WHERE _D_S_A_.`db_id` IN (2, 3, 4)
        AND (_D_S_A_.`engine` = 'Doris'
        OR _D_S_A_.`create_time` > '2021-11-01')

Я полагаю, что благодаря двум приведенным выше примерам каждый имеет определенное представление о разрешениях данных на уровне строк. Далее мы продолжим рассматривать разрешения данных на уровне столбцов.

4.2 Разрешения на уровне столбца

Как мы уже говорили выше, разрешения на уровне столбца — это состояние поля, и его основная функция — снизить чувствительность поля или сделать его невидимым. Существует несколько ключевых концепций разрешений на уровне столбца:

  • белый список

Это то же самое, что и разрешения на уровне строк. Если пользователь находится в белом списке, все правила на уровне столбца не вступят в силу, и все поля будут доступны.

  • Другие поля

Это относится к полям, для которых текущий пользователь не установил правила для всех полей в этом наборе данных. В настоящее время существуют две конфигурации разрешений: «отключить просмотр» и «разрешить просмотр» для других полей.

Например:

Набор данных A имеет четыре поля: «имя, возраст, телефон, адрес». Если администратор устанавливает правило снижения чувствительности для Чжан Саня в поле «телефон» в наборе данных A, то в дополнение к полю телефона добавляется «имя, возраст». , адрес» в настоящее время принадлежат другим полям:

Если в других полях задан запрет на просмотр, то Чжан Сан сможет просматривать только поле «телефон» в наборе данных A, и это поле по-прежнему нечувствительно;

Если для других полей разрешен просмотр, то Чжан Сан может видеть содержимое всех полей в наборе данных A, но поле «телефон» находится в десенсибилизированном состоянии;

Это место немного запутанное, так что вы сможете его лучше понять.

  • Добавить правила

Правило на уровне столбца можно добавить, как показано на рисунке ниже:

На картинке мы видим, что правило на уровне столбца содержит две опции: отключение просмотра и снижение чувствительности данных. Как это правило вступает в силу? В этом разделе перечислены 4 способа вступления в силу:

Эффективный метод

иллюстрировать

Действительно для всех

Это означает, что правило эффективно для всех.

Действует не для всех

Это правило действует не для всех

Назначенное лицо вступает в силу

Укажите пользователя, для которого правило вступит в силу

Назначенное лицо неэффективно

Правило не вступает в силу для указанного пользователя

Варианты снижения чувствительности также включают в себя множество методов, таких как: снижение чувствительности первых нескольких символов, снижение чувствительности следующих символов, снижение чувствительности средних символов и т. д. Такая идея реализации достигается за счет сегментации, замены и объединения некоторых функций строковых операций в SQL.

Выше приведен общий процесс настройки и идеи реализации разрешений на уровне столбца в разрешениях на данные. Далее давайте рассмотрим этот пример:

Образец 3

Набор данныхDATASET-AстандартныйSQL : "SELECT xxx FROM xxx ", правила разрешений на уровне столбца для пользователя Чжан Сан следующие:

<u>верно"chinese_name"Поля посередине3немного десенсибилизация,Уменьшите чувствительность поля «charge_person».,верно"engine"Последние тринемного десенсибилизация</u>

После перехвата и перезаписи разрешений на данные фактический SQL для запроса к хранилищу данных становится следующим:

Язык кода:sql
копировать
SELECT
	_D_S_A_.`tbl_desc` AS `tbl_desc`,
	_D_S_A_.`tbl_typ e` AS `tbl_type`,
	CONCAT(SUBSTR(`engine`, 1, 3), '***') AS `engine`,
	_D_S_A_.`create_time` AS `create_time`,
	_D_S_A_.`create_table_sql` AS `create_table_sql`,
	CONCAT(SUBSTR( `charge_person`, 1, 1), '**') AS `charge_person`,
	CASE
		WHEN CHAR_LENGTH(`chinese_name`) <= 3 THEN '***'
		ELSE REPLACE(`chinese_name`, SUBSTR(`chinese_name`, 3, CHAR_LENGTH(`chinese_name`)-3), '***')
	END AS `chinese_name`,
	_D_S_A_.`sec urity_level` AS `security_level`,
	_D_S_A_.`create_time` AS `create_time`,
	_D_S_A_.`expression_add_field2` AS `expression_add_field2`
FROM
	(
	SELECT
		xxx
	FROM
		xxx ) _D_S_A_

5. Резюме

Эта система разрешений на данные широко используется на предприятии. В настоящее время более тысячи человек получили разрешения на данные, включая службы данных, отчеты BI и другие проекты. Система прошла тестирование в различных бизнес-сценариях. работает стабильно в течение 2 лет. Это система, которая со временем устоялась. В построении промежуточной платформы данных создание прав доступа к данным является очень важной частью. В этой статье подробно представлены общие идеи проектирования и процесс настройки, и мы надеемся, что она будет полезна всем.

Я участвую в последнем конкурсе эссе для специального учебного лагеря Tencent Technology Creation 2024. Приходите и разделите со мной приз!

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose