Udostępnij za pośrednictwem


Jak zaimplementować dynamiczne maskowanie danych w usłudze Synapse Data Warehouse

Dotyczy: punkt końcowy analizy SQL i magazyn w usłudze Microsoft Fabric

Dynamiczne maskowanie danych to najnowocześniejsze technologie ochrony danych, które pomagają organizacjom chronić poufne informacje w swoich bazach danych. Umożliwia zdefiniowanie reguł maskowania dla określonych kolumn, dzięki czemu tylko autoryzowani użytkownicy będą widzieć oryginalne dane, ukrywając je dla innych. Dynamiczne maskowanie danych zapewnia dodatkową warstwę zabezpieczeń, dynamicznie zmieniając dane prezentowane użytkownikom na podstawie uprawnień dostępu.

Aby uzyskać więcej informacji, zobacz Dynamiczne maskowanie danych w magazynie danych sieci szkieletowej.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że masz następujące elementy:

  1. Obszar roboczy usługi Microsoft Fabric z aktywną pojemnością lub pojemnością próbną.
  2. Magazyn.
    1. Dynamiczne maskowanie danych działa w punkcie końcowym analizy SQL. Maski można dodawać do istniejących kolumn, używając ALTER TABLE ... ALTER COLUMN instrukcji przedstawionych w dalszej części tego artykułu.
    2. W tym ćwiczeniu jest używany magazyn.
  3. Aby administrować, użytkownik z uprawnieniami administratora, członka lub współautora w obszarze roboczym lub z podwyższonym poziomem uprawnień w magazynie.
    1. W tym samouczku "konto administratora".
  4. Aby przetestować, użytkownik bez uprawnień administratora, członka lub współautora w obszarze roboczym i bez podniesionych uprawnień w magazynie.
    1. W tym samouczku "użytkownik testowy".

1. Połącz

  1. Otwórz obszar roboczy Sieć szkieletowa i przejdź do magazynu, do którego chcesz zastosować dynamiczne maskowanie danych.
  2. Zaloguj się przy użyciu konta z podwyższonym poziomem uprawnień dostępu w magazynie, roli Administrator/Członek/Współautor w obszarze roboczym lub Uprawnienia kontroli w magazynie.

2. Konfigurowanie dynamicznego maskowania danych

  1. Zaloguj się do portalu sieci szkieletowej przy użyciu konta administratora.

  2. W obszarze roboczym Sieć szkieletowa przejdź do punktu końcowego magazynu i analizy SQL dla usługi Lakehouse.

  3. Wybierz opcję Nowe zapytanie SQL, a następnie w obszarze Puste wybierz pozycję Nowe zapytanie SQL.

  4. W skryfcie SQL zdefiniuj reguły dynamicznego maskowania danych przy użyciu klauzuli MASKED WITH FUNCTION . Na przykład:

    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
    
    • Kolumna FirstName zawiera tylko pierwsze i ostatnie dwa znaki ciągu w - środku.
    • W kolumnie jest wyświetlana LastName wartość XXXX.
    • Kolumna SSN zawiera XXX-XX- cztery ostatnie znaki ciągu.
  5. Wybierz przycisk Uruchom, aby wykonać skrypt.

  6. Potwierdź wykonanie skryptu.

  7. Skrypt zastosuje określone reguły dynamicznego maskowania danych do wyznaczonych kolumn w tabeli.

3. Testowanie dynamicznego maskowania danych

Po zastosowaniu dynamicznych reguł maskowania danych można przetestować maskowanie, wykonując zapytanie względem tabeli przy użyciu użytkownika testowego, który nie ma uprawnień administratora, członka lub współautora w obszarze roboczym lub z podwyższonym poziomem uprawnień w magazynie.

  1. Zaloguj się do narzędzia takiego jak Azure Data Studio lub SQL Server Management Studio jako użytkownik testowy, na przykład TestUser@contoso.com.
  2. Jako użytkownik testowy uruchom zapytanie względem tabeli. Dane maskowane są wyświetlane zgodnie z zdefiniowanymi regułami.
    SELECT * FROM dbo.EmployeeData;
    
  3. Przy użyciu konta administratora przyznaj użytkownikowi UNMASK testowemu uprawnienie.
    GRANT UNMASK ON dbo.EmployeeData TO [TestUser@contoso.com];
    
  4. Jako użytkownik testowy sprawdź, czy zalogowany użytkownik TestUser@contoso.com może wyświetlać niemaskowane dane.
    SELECT * FROM dbo.EmployeeData;
    
  5. Za pomocą konta administratora odwoływanie UNMASK uprawnień od użytkownika testowego.
    REVOKE UNMASK ON dbo.EmployeeData TO [TestUser];
    
  6. Sprawdź, czy użytkownik testowy nie widzi niemaskowanych danych, tylko zamaskowanych danych.
    SELECT * FROM dbo.EmployeeData;
    
  7. Za pomocą konta administratora możesz udzielić i odwołać UNMASK uprawnienie do roli
    GRANT UNMASK ON dbo.EmployeeData TO [TestRole];
    REVOKE UNMASK ON dbo.EmployeeData TO [TestRole];
    

4. Zarządzanie i modyfikowanie dynamicznych reguł maskowania danych

Aby zarządzać istniejącymi regułami dynamicznego maskowania danych lub modyfikować je, utwórz nowy skrypt SQL.

  1. Maskę można dodać do istniejącej kolumny przy użyciu klauzuli 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. Oczyszczanie

  1. Aby wyczyścić tę tabelę testowania:
    DROP TABLE dbo.EmployeeData;