M365Con 2027 – безкоштовна онлайн-конференція · 11–22 Jan 2027 · 120 sessions→ m365con.net

Блог · Mirko Peters

Впровадження динамічної безпеки на рівні рядків у Power BI та Microsoft Fabric: архітектура, шаблони DAX і корпоративне управління

By · · Updated

Впровадьте динамічну безпеку на рівні рядків у Power BI та Microsoft Fabric, щоб контролювати доступ користувачів до даних, забезпечити відповідність вимогам і адаптуватися до змін в організації.

Automatically translated with AI from the original post. Read the English original

▶ BLOGImplementing DynamicRow-Level Security in…M365.FM
Titelbild: Implementing Dynamic Row-Level Security in Power BI and Microsoft Fabric: Architecture, DAX Patterns, and Enterprise-Grade Governance

Динамічну безпеку на рівні рядків варто розглядати як систему, яка змінюється. Вона розвивається разом із вашою організацією. На те, як працює безпека в Power BI та Microsoft Fabric, впливають дизайн моделі даних, вирази DAX, ідентичність користувача та управління. Якщо налаштувати її правильно, ви зможете визначати, хто бачитиме певні дані.

Ключова область

Вплив на RLS

Динамічна безпека

Фільтрує дані за користувачем за допомогою DAX у моделі

Управління

Гарантує, що доступ відповідає правилам і залишається безпечним

Дизайн моделі

Дає змогу контролювати, хто бачить конфіденційні дані

Головне

  • Динамічна безпека на рівні рядків змінюється відповідно до потреб вашої компанії. Вона дає змогу вирішувати, хто може бачити певні дані. Для цього перевіряється ідентичність кожного користувача.

  • Для безпеки в хмарі використовуйте USERPRINCIPALNAME(). Ця функція дає змогу користувачам бачити лише власні дані. Вона допомагає зберігати вашу інформацію в безпеці.

  • Регулярно перевіряйте налаштування безпеки та групи користувачів. Це запобігає доступу до даних, які людям не призначені. Так ваші дані залишаються в безпеці.

  • Створюйте чіткі таблиці безпеки для керування дозволами користувачів. Це допоможе контролювати, хто що бачить, коли ваша компанія зростатиме.

  • Тестуйте правила безпеки в хмарі з реальними користувачами. Так ви переконаєтеся, що дані захищені, і користувачі бачитимуть лише те, що їм дозволено.

Переосмислення систем безпеки на рівні рядків

Безпека як система, побудована на моделі

Безпека на рівні рядків є системою, яка пов’язує різні частини вашої аналітичної платформи. Коли ви створюєте модель даних, ви починаєте формувати безпеку даних. Те, як ви налаштовуєте таблиці, з’єднуєте їх і створюєте ролі, визначає, як люди бачать дані. Якщо компанія зростає або до неї приєднуються нові команди, правила безпеки потрібно оновлювати. Безпека на рівні рядків не є разовим налаштуванням, про яке можна забути. Вона змінюється разом із бізнесом і відповідає новим потребам.

Порада: регулярно перевіряйте модель даних. Добра модель спрощує безпеку та допомагає уникати помилок.

Модель має містити чіткі зв’язки та окремі таблиці безпеки. Це дає змогу контролювати, хто бачить певні дані, і захищає приватну інформацію. Динамічна безпека на рівні рядків може прив’язувати те, що бачить користувач, до його групи або посади у Fabric. Так ви швидко змінюєте дозволи, коли змінюється компанія.

Статична та динамічна безпека на рівні рядків

Існує два основні способи налаштування безпеки даних: статичний і динамічний. Статична безпека використовує наперед задані правила. Ви створюєте ролі та фільтри для кожної групи. Цей підхід добре підходить для невеликих команд або коли доступ майже не змінюється. Динамічна безпека на рівні рядків використовує інформацію про користувача, який увійшов у систему, та таблиці відповідності. Вона перевіряє користувача і одразу змінює дані, які він бачить. Цей підхід краще працює для великих компаній з багатьма користувачами та мінливими правилами.

Ось таблиця з відмінностями:

Характеристика

RLS (статична)

DLS (динамічна)

Гнучкість

Низька

Висока

Налаштування

Ручні ролі

На основі правил із прив’язкою користувачів

Найкращий сценарій

Мало користувачів / фіксований доступ

Багато користувачів / персоналізований доступ

Динамічна безпека на рівні рядків дає більше способів контролювати доступ. Вона використовує такі інструменти, як USERPRINCIPALNAME() і таблиці відповідності, щоб прив’язати користувачів до потрібних даних. Статична безпека простіша, але погано працює, коли компанія зростає або сильно змінюється.

  • Статична безпека на рівні рядків обмежує дані за допомогою наперед заданих правил.

  • Динамічна безпека на рівні рядків змінює те, що бачить користувач, залежно від того, хто він.

  • Динамічна безпека найкраще підходить для великих компаній із великою кількістю правил.

Щоб захистити дані, обирайте підхід, який найкраще відповідає вашим потребам. Добре планування та міцна модель допоможуть захистити конфіденційну інформацію і зробити вашу аналітику безпечною.

Шаблони динамічної безпеки на рівні рядків у Fabric

Функції DAX: USERPRINCIPALNAME() проти USERNAME()

Важливо розуміти, як у Fabric працює ідентифікація. Для налаштування безпеки на рівні рядків використовуються дві основні функції: USERPRINCIPALNAME() і USERNAME(). Обидві перевіряють, хто переглядає звіт. USERPRINCIPALNAME() повертає електронну адресу користувача з хмари. USERNAME() часто повертає ім’я локального облікового запису, переважно в Power BI Desktop. Якщо використовувати USERNAME() у хмарі, вона може працювати некоректно, і це знизить рівень безпеки ваших даних.

Порада: Для динамічного захисту на рівні рядків у Fabric завжди використовуйте USERPRINCIPALNAME(). Ця функція зіставляє хмарну адресу електронної пошти користувача й допомагає захистити ваші дані.

Функція

Повертає

Найкращий сценарій використання

USERPRINCIPALNAME()

Хмарна адреса електронної пошти

Fabric, хмарний Power BI

USERNAME()

Назва локального облікового запису

Лише для тестування в Desktop

Якщо використовувати не ту функцію, користувачі можуть побачити дані, які їм не призначені. Тестуйте безпеку в хмарі, а не лише в Desktop.

Безпечні шаблони DAX і антишаблони

Вам потрібно, щоб ваші дані залишалися в безпеці. Для динамічного захисту на рівні рядків потрібні надійні шаблони DAX. Найкращий спосіб — використовувати таблиці зіставлень і динамічні правила. Так ви контролюєте, хто що бачить.

Хороший шаблон DAX використовує пошук, щоб зіставити користувачів із їхньою групою. Він добре працює для компаній із великою кількістю груп. Ось гарний приклад:

Organizations[Id] = LOOKUPVALUE(
    AspNetUsers[OrganizationId],
    AspNetUsers[Email],
    USERPRINCIPALNAME()
)

Цей шаблон перевіряє електронну пошту користувача й знаходить його групу. Так можна показувати лише потрібні дані. Цей підхід кращий за просте зіставлення адрес електронної пошти. Він добре масштабується разом із компанією і зберігає безпеку даних.

Примітка: Не жорстко прописуйте адреси електронної пошти й не використовуйте обчислювані стовпці для керування доступом. Такі підходи можуть зламатися, якщо користувачі змінюються або компанія зростає.

Деякі погані шаблони можуть призвести до витоку даних:

  • Використання USERNAME() у хмарі.

  • Жорстке прописування адрес електронної пошти користувачів або доменів.

  • Розміщення логіки безпеки в обчислюваних стовпцях.

Завжди використовуйте динамічні правила й таблиці зіставлень. Так модель даних залишається простою, а дані — в безпеці.

Ієрархії та функція PATH()

Іноді потрібен захист для керівників, команд або підрозділів. Ієрархії допомагають це зробити. Функція PATH() у DAX дозволяє будувати зв’язки «батько–нащадок». Ви можете використовувати її, щоб контролювати, хто що бачить на кожному рівні.

Наприклад, можна створити таблицю з ідентифікаторами працівників і їхніх керівників. PATH() побудує ланцюжок від кожного працівника до його керівника. Далі ви можете використати DAX, щоб фільтрувати дані для кожного рівня.

PATH(Employee[EmployeeID], Employee[ManagerID])

Ця функція допомагає налаштувати динамічний захист на рівні рядків для великих компаній. Керівники можуть бачити дані своєї команди, а звичайні працівники — не бачити надто багато.

Порада: Використовуйте PATH() для захисту в ієрархіях. Це робить модель даних гнучкою й зберігає безпеку даних.

Фільтри рядків, маски стовпців і функції ієрархій можна використовувати разом. Це допомагає захистити приватні дані й контролювати доступ у міру зростання компанії.

Архітектура ролей і зв’язків

Проєктування таблиць безпеки

Для динамічного захисту на рівні рядків потрібно створити таблиці безпеки. Вони показують, які користувачі можуть бачити які дані. Використовуйте стовпці для електронної пошти користувача, групи та рівня доступу. Така структура допомагає зберігати безпеку даних у міру зростання компанії.
Створюючи ролі, розділяйте ролі зі строгим і відкритим доступом. Якщо одна роль дозволяє бачити все, інші ролі з захистом на рівні рядків можуть працювати некоректно. Потрібно не допускати конфліктів між ролями, щоб зберегти безпеку даних.

  • Створюйте таблиці безпеки з чіткими стовпцями для користувача та дозволів.

  • Розділяйте ролі, щоб вони не перетиналися й не спричиняли проблем.

  • Регулярно перевіряйте таблиці безпеки, щоб відстежувати зміни.

Зв’язки в моделі даних

Те, як ви будуєте модель даних, визначає, як ви контролюєте доступ. Використовуйте односторонні зв’язки між таблицями. Так модель залишається простою, і це допомагає уникнути помилок.
Краще використовувати спеціальні таблиці безпеки, ніж розміщувати дозволи в таблицях фактів. Таблицю безпеки можна зв’язати з іншими таблицями, наприклад за підрозділом або регіоном. Так можна фільтрувати дані для кожного користувача чи групи.

Порада: Використовуйте місткові таблиці, щоб зв’язувати користувачів із даними. Це допомагає динамічному захисту на рівні рядків працювати коректно й зберігає безпеку даних.

Гранулярність ролей: малі та великі ролі

Вам потрібно визначити, наскільки детальними мають бути ваші ролі. Малі ролі дають вам більше контролю. Ви можете надавати доступ за посадою або групою. Великі ролі охоплюють більше людей, але можуть бути ризикованими, якщо щось змінюється.
Регулярно перевіряйте, хто має кожну роль. Це захищає ваші дані та дозволяє вносити зміни за потреби.
Обирайте малі ролі для більшого контролю та простих оновлень. Великі ролі можуть підійти для простих груп, але в великих компаніях вони можуть спричиняти проблеми.

Призначення користувачів і груп у Fabric

Групи Azure AD чи окремі користувачі

Доступ у Fabric ви надаєте, додаючи користувачів до груп Azure AD. Так можна контролювати дані для багатьох людей одразу. Використовувати групи безпечніше, ніж додавати кожного користувача окремо. Групи допомагають керувати системою з меншими зусиллями. Коли склад команди змінюється, ви можете швидко оновити групи. Прив'язування груп до ролей спрощує моделювання даних. Ваші правила безпеки на рівні рядків залишаються зрозумілими й простими.

Порада: використовуйте групи Azure AD для контролю доступу. Це допомагає уникати помилок і економить час.

Перетинні групи та прихований доступ

Остерігайтеся перетинних груп. Іноді користувач входить до кількох груп. Це може дати йому доступ до даних, які йому не призначені. Прихований доступ виникає, коли через таку помилку користувачі бачать додаткові дані. Щоб цього уникнути, регулярно перевіряйте списки груп. Використовуйте таблиці для відстеження того, які користувачі входять до кожної групи. Добре моделювання даних допомагає виявляти проблеми на ранньому етапі. Видаляйте користувачів із груп, які їм більше не потрібні, щоб зберегти безпеку даних.

Проблема

Рішення

Перетинні групи

Регулярно перевіряйте списки груп

Прихований доступ

Переглядайте учасників груп

Примітка: прихований доступ може показувати приватні дані. Усувайте перетини груп, щоб зберегти безпеку системи.

Заплановані перевірки доступу

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

  • Призначте дати для перевірки всіх груп.

  • Використовуйте інструменти Fabric для перевірки груп.

  • Попросіть власників підтвердити склад кожної групи.

Увага: регулярні перевірки допомагають виявити помилки до того, як вони спричинять проблеми.

Ідентифікація: Desktop проти Fabric

Функції ідентифікації та відмінності хмари

Важливо розуміти, як працює ідентифікація в Power BI Desktop і Microsoft Fabric. У Power BI Desktop функція USERNAME() зазвичай показує назву вашого комп'ютера. У Microsoft Fabric функція USERPRINCIPALNAME() повертає вашу адресу електронної пошти в хмарі. Ця різниця важлива для захисту даних. Якщо ви використовуєте USERNAME() у хмарі, сторонні особи можуть побачити дані. Для звітів у хмарі завжди використовуйте USERPRINCIPALNAME(). Це допомагає захищати дані та відповідає системі ідентифікації вашої компанії.

Порада: тестуйте правила безпеки на рівні рядків у хмарі. Тести в Desktop не показують реальний доступ користувачів.

Власник набору даних і параметри клієнта

Важливо знати, хто є власником вашого набору даних. Власник може змінювати параметри оновлення та впливати на те, хто бачить дані. Якщо змінити власника, можна змінити й те, хто має доступ до приватних даних. Параметри клієнта також важливі. Вони визначають, як працює ідентифікація у вашій компанії. Перевіряйте параметри клієнта перед публікацією звітів. Переконайтеся, що модель даних відповідає правилам безпеки вашої компанії.

Параметр

Вплив на безпеку даних

Власник набору даних

Керує оновленням і доступом

Параметри клієнта

Керує організацією ідентифікації

Типові причини витоку RLS

Ви можете втратити контроль над безпекою на рівні рядків, якщо не тестуєте в хмарі. Іноді користувачі бачать більше даних, ніж повинні. Це може статися, якщо ви використовуєте не ту функцію ідентифікації або забуваєте оновити членство в групах. Витоки можуть статися й тоді, коли ви змінюєте модель даних без перевірки таблиць безпеки. Завжди переглядайте налаштування безпеки даних після змін. Використовуйте тестування в хмарі та регулярні аудити, щоб вчасно знаходити проблеми.

Увага: витоки даних можуть розкрити приватну інформацію. Регулярно переглядайте налаштування, щоб захистити вашу організацію.

Тестування, аудит і управління

Тестування RLS у хмарі

Безпеку на рівні рядків потрібно перевіряти в хмарі. Так ви переконаєтеся, що дані захищені для реальних користувачів. Інструмент «View As» у Desktop показує лише попередній перегляд. Він не показує, як правила працюють у Microsoft Fabric. Після публікації звіту перевірте його з реальними користувачами та групами. Так ви побачите, що саме бачить кожна людина. Використовуйте тестові облікові записи, щоб переконатися, що користувачі бачать лише свої дані. Завжди повторюйте перевірку після зміни ролей або оновлення моделі. Тестування в хмарі допомагає виявити проблеми до того, як вони зашкодять бізнесу.

Порада: завжди тестуйте з реальними користувачами в хмарі, а не лише в Desktop. Так безпека даних залишається надійною.

Автоматизація аудитів і перевірок

Автоматизація допомагає спростити аудити та перевірки у Fabric. Вона регулярно перевіряє дозволи робочих просторів, потоки даних і мітки конфіденційності. Microsoft Purview надає панелі, на яких можна відстежувати правила на всій платформі. Для пошуку проблем із відповідністю вимогам можна використовувати журнали активності та Admin API. Автоматизація допомагає знаходити проблеми на ранньому етапі і економить час. Аудитори можуть побачити повний шлях чутливих стовпців від джерела до звіту. Це робить перевірки швидшими та точнішими. Автоматизація також спрощує й здешевлює дотримання таких правил, як GDPR і HIPAA.

  • Налаштуйте автоматичні перевірки дозволів і потоків даних.

  • Використовуйте панелі, щоб стежити за змінами в правилах безпеки.

  • Переглядайте журнали активності, щоб швидко знаходити проблеми.

Документування та управління змінами

Для того щоб система безпеки даних залишалася зрозумілою, потрібні якісні записи. Фіксуйте правила безпеки, списки груп і зміни ролей. Оновлюйте нотатки щоразу, коли змінюєте модель або додаєте нових користувачів. Чіткі записи допомагають відстежувати, хто має доступ до яких даних. Вони також допомагають новим членам команди розібратися в системі. Управління змінами означає, що оновлення перевіряються й погоджуються до того, як потраплять у робоче середовище. Так безпека на рівні рядків залишається надійною в міру зростання компанії.

Завдання

Перевага

Документувати зміни

Запобігає плутанині

Перевіряти оновлення

Блокує небажаний доступ

Відстежувати призначення

Підвищує захищеність даних

Увага: тримайте записи в актуальному стані. Це захищає ваші дані й допомагає швидко усувати проблеми.

Безпеку на рівні рядків варто розглядати як щось, що змінюється разом із зростанням даних і компанії. Продумана конфігурація допомагає захищати приватну інформацію. Використання якісних шаблонів DAX і грамотне управління ідентифікацією користувачів забезпечують захист даних. Регулярна перевірка безпеки та документування змін допомагають рано помічати проблеми. Якщо планувати наперед, можна контролювати, хто бачить дані, і зберігати аналітику в безпеці.

  • Регулярно перевіряйте налаштування безпеки.

  • Змінюйте правила, щоб краще захищати дані.

  • Завжди ставте конфіденційність на перше місце.

Поширені запитання

Що таке динамічна безпека на рівні рядків у Power BI і Fabric?

Динамічна безпека на рівні рядків дає змогу контролювати доступ до даних залежно від того, хто переглядає звіт. Для зіставлення користувачів із відповідними даними використовуються функції DAX і таблиці відповідностей.

Чому варто використовувати USERPRINCIPALNAME(), а не USERNAME()?

USERPRINCIPALNAME() повертає хмарну адресу електронної пошти користувача. Це найкращий варіант для Power BI і Fabric. USERNAME() може повертати локальне ім'я, що в хмарі може спричинити проблеми з безпекою.

Як групи Azure AD допомагають із безпекою?

Групи Azure AD дають змогу одночасно керувати доступом для багатьох користувачів. Ви додаєте користувачів до груп і призначаєте ролі. Так налаштування безпеки стає простішим і надійнішим.

Що таке таблиця безпеки і навіщо вона потрібна?

Таблиця безпеки містить перелік користувачів, груп і дозволів. Вона використовується для контролю того, хто може бачити певні дані. Це допомагає зберігати безпеку даних у міру зростання компанії.

Як часто потрібно перевіряти безпеку на рівні рядків у хмарі?

Перевіряйте безпеку на рівні рядків щоразу, коли змінюєте ролі, групи або модель даних. Тестування в хмарі показує, що бачать реальні користувачі, і допомагає рано виявляти проблеми.

Entities in this article

Microsoft Fabric Governance Power BI Azure Functions Access reviews Microsoft Entra ID Power BI Desktop Semantic model

Related articles

RSS