Поделиться через


Реализация безопасности на уровне строк в хранилище данных Microsoft Fabric

Область применения:✅ конечная точка аналитики SQL и хранилище в Microsoft Fabric

Безопасность на уровне строк (RLS) в хранилище Fabric и конечная точка аналитики SQL позволяет управлять доступом к строкам в таблице базы данных на основе ролей пользователей и предикатов. Дополнительные сведения см. в разделе "Безопасность на уровне строк" в хранилище данных Fabric.

В этом руководстве описаны шаги по реализации безопасности на уровне строк в хранилище Microsoft Fabric или конечной точке аналитики SQL.

Необходимые компоненты

Прежде чем начать, убедитесь, что у вас есть следующее:

  1. Рабочая область Fabric с активной емкостью или пробной емкостью.
  2. Конечная точка хранилища Fabric или аналитики SQL в Lakehouse.
  3. Права администратора, члена или участника в рабочей области или повышенные разрешения на конечную точку хранилища или аналитики SQL.

1. Подключение

  1. Войдите с помощью учетной записи с повышенными привилегиями в конечной точке хранилища или аналитики SQL. (Роль администратора или участника в рабочей области или разрешения на управление в конечной точке хранилища или аналитики SQL).
  2. Откройте рабочую область Fabric и перейдите к конечной точке хранилища или аналитики SQL, где необходимо применить безопасность на уровне строк.

2. Определение политик безопасности

  1. Определите роли и предикаты, которые вы хотите использовать для управления доступом к данным. Роли определяют, кто может получать доступ к данным, и предикаты определяют критерии доступа.

  2. Создайте предикаты безопасности. Предикаты безопасности — это условия, определяющие, к каким строкам пользователь может получить доступ. Вы можете создавать предикаты безопасности как встроенные табличные функции. В этом простом упражнении предполагается, что в таблице данных есть столбец, UserName_columnсодержащий соответствующее имя пользователя, заполненное системной функцией USER_NAME().

    -- Creating schema for Security
    CREATE SCHEMA Security;
    GO
    
    -- Creating a function for the SalesRep evaluation
    CREATE FUNCTION Security.tvf_securitypredicate(@UserName AS varchar(50))
        RETURNS TABLE
    WITH SCHEMABINDING
    AS
        RETURN SELECT 1 AS tvf_securitypredicate_result
    WHERE @UserName = USER_NAME();
    GO
    
    -- Using the function to create a Security Policy
    CREATE SECURITY POLICY YourSecurityPolicy
    ADD FILTER PREDICATE Security.tvf_securitypredicate(UserName_column)
    ON sampleschema.sampletable
    WITH (STATE = ON);
    GO 
    
  3. Замените YourSecurityPolicy имя политики tvf_securitypredicate на имя функции sampleschema предиката с именем схемы и sampletable именем целевой таблицы.

  4. Замените UserName_column столбец в таблице, содержащей имена пользователей.

  5. Замените WHERE @UserName = USER_NAME(); предложением WHERE , соответствующим требуемому фильтру безопасности на основе предиката. Например, это фильтрует данные, в которых UserName столбец, сопоставленный с @UserName параметром, соответствует результату системной функции USER_NAME().

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

3. Проверка безопасности на уровне строк

  1. Войдите в Fabric как пользователь, который является членом роли с связанной политикой безопасности. Используйте следующий запрос, чтобы проверить значение, которое должно соответствовать в таблице.

    SELECT USER_NAME() 
    
  2. Запросите таблицы базы данных, чтобы убедиться, что безопасность на уровне строк работает должным образом. Пользователи должны видеть только данные, удовлетворяющие предикату безопасности, определенному в их роли. Например:

    SELECT * FROM sampleschema.sampletable
    
  3. Аналогичные отфильтрованные результаты для пользователя будут отфильтрованы другими приложениями, используюющими проверку подлинности Microsoft Entra для доступа к базе данных. Дополнительные сведения см. в статье "Проверка подлинности Microsoft Entra" в качестве альтернативы проверке подлинности SQL в Microsoft Fabric.

4. Мониторинг и поддержание безопасности на уровне строк

Регулярно отслеживайте и обновляйте политики безопасности на уровне строк по мере развития требований безопасности. Следите за назначениями ролей и убедитесь, что у пользователей есть соответствующий доступ.