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


Реализация динамического маскирования данных в хранилище данных Synapse

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

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

Дополнительные сведения см. в статье "Динамическое маскирование данных" в хранилище данных Fabric.

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

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

  1. Рабочая область Microsoft Fabric с активной емкостью или пробной емкостью.
  2. Склад.
    1. Динамическое маскирование данных работает в конечной точке аналитики SQL. Маски можно добавить в существующие столбцы, как ALTER TABLE ... ALTER COLUMN показано далее в этой статье.
    2. В этом упражнении используется хранилище.
  3. Для администрирования пользователь с правами администратора, участника или участника в рабочей области или повышенными разрешениями на хранилище.
    1. В этом руководстве используется учетная запись администратора.
  4. Для тестирования пользователь без прав администратора, участника или участника в рабочей области и без повышенных разрешений на хранилище.
    1. В этом руководстве используется тестовый пользователь.

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

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

2. Настройка динамического маскирования данных

  1. Войдите на портал Fabric с учетной записью администратора.

  2. В рабочей области Fabric перейдите к конечной точке хранилища и аналитики SQL для Lakehouse.

  3. Выберите параметр "Создать SQL-запрос" и в разделе "Пустой" выберите "Создать SQL-запрос".

  4. В скрипте SQL определите правила динамического MASKED WITH FUNCTION маскирования данных с помощью предложения. Например:

    CREATE TABLE dbo.EmployeeData (
        EmployeeID INT
        ,FirstName VARCHAR(50) MASKED WITH (FUNCTION = 'partial(1,"-",2)') NULL
        ,LastName VARCHAR(50) MASKED WITH (FUNCTION = 'default()') NULL
        ,SSN CHAR(11) MASKED WITH (FUNCTION = 'partial(0,"XXX-XX-",4)') NULL
        ,email VARCHAR(256) NULL
        );
    GO
    INSERT INTO dbo.EmployeeData
        VALUES (1, 'TestFirstName', 'TestLastName', '123-45-6789','email@youremail.com');
    GO
    INSERT INTO dbo.EmployeeData
        VALUES (2, 'First_Name', 'Last_Name', '000-00-0000','email2@youremail2.com');
    GO
    
    • В FirstName столбце отображаются только первые и последние два символа строки с - серединой.
    • В столбце LastName показано XXXX.
    • В SSN столбце показаны XXX-XX- последние четыре символа строки.
  5. Нажмите кнопку "Выполнить", чтобы выполнить скрипт.

  6. Подтвердите выполнение скрипта.

  7. Скрипт будет применять указанные правила динамического маскирования данных к указанным столбцам в таблице.

3. Тестирование динамической маскировки данных

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

  1. Войдите в средство, например Azure Data Studio или SQL Server Management Studio в качестве тестового пользователя.TestUser@contoso.com
  2. В качестве тестового пользователя выполните запрос к таблице. Маскированные данные отображаются в соответствии с заданными правилами.
    SELECT * FROM dbo.EmployeeData;
    
  3. С учетной записью администратора предоставьте UNMASK разрешение тестового пользователя.
    GRANT UNMASK ON dbo.EmployeeData TO [TestUser@contoso.com];
    
  4. В качестве тестового пользователя убедитесь, что пользователь вошел в систему, как TestUser@contoso.com можно увидеть незамеченные данные.
    SELECT * FROM dbo.EmployeeData;
    
  5. С учетной записью администратора отмените UNMASK разрешение тестового пользователя.
    REVOKE UNMASK ON dbo.EmployeeData TO [TestUser];
    
  6. Убедитесь, что тестовый пользователь не может видеть незамаскированные данные, только маскированные данные.
    SELECT * FROM dbo.EmployeeData;
    
  7. С учетной записью администратора вы можете предоставить и отозвать UNMASK разрешение на роль.
    GRANT UNMASK ON dbo.EmployeeData TO [TestRole];
    REVOKE UNMASK ON dbo.EmployeeData TO [TestRole];
    

4. Управление и изменение правил динамического маскирования данных

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

  1. Маску можно добавить в существующий столбец с помощью MASKED WITH FUNCTION предложения:

    ALTER TABLE dbo.EmployeeData
    ALTER COLUMN [email] ADD MASKED WITH (FUNCTION = 'email()');
    GO
    
    ALTER TABLE dbo.EmployeeData 
    ALTER COLUMN [email] DROP MASKED;
    

5. Очистка

  1. Чтобы очистить эту таблицу тестирования, выполните указанные ниже действия.
    DROP TABLE dbo.EmployeeData;