Sdílet prostřednictvím


Implementace dynamického maskování dat ve službě Synapse Data Warehouse

Platí pro: Koncový bod sql Analytics a sklad v Microsoft Fabric

Dynamické maskování dat je špičková technologie ochrany dat, která organizacím pomáhá chránit citlivé informace v rámci svých databází. Umožňuje definovat pravidla maskování pro konkrétní sloupce a zajistit, aby původní data viděli jenom autorizovaní uživatelé a zároveň je skryli pro ostatní. Dynamické maskování dat poskytuje další vrstvu zabezpečení tím, že dynamicky mění data prezentovaná uživatelům na základě jejich přístupových oprávnění.

Další informace najdete v tématu Dynamické maskování dat v datovém skladu infrastruktury.

Požadavky

Než začnete, ujistěte se, že máte následující:

  1. Pracovní prostor Microsoft Fabric s aktivní kapacitou nebo zkušební kapacitou
  2. Sklad.
    1. Dynamické maskování dat funguje na koncovém bodu analýzy SQL. K existujícím sloupcům můžete přidat masky, ALTER TABLE ... ALTER COLUMN jak je znázorněno dále v tomto článku.
    2. V tomto cvičení se používá sklad.
  3. Chcete-li spravovat uživatele s právy správce, člena nebo přispěvatele v pracovním prostoru nebo zvýšenými oprávněními pro sklad.
    1. V tomto kurzu se jedná o účet správce.
  4. Pokud chcete testovat, uživatel bez oprávnění správce, člena nebo přispěvatele v pracovním prostoru a bez zvýšených oprávnění pro sklad.
    1. V tomto kurzu se jedná o testovacího uživatele.

1. Připojit

  1. Otevřete pracovní prostor Fabric a přejděte do skladu, u kterého chcete použít dynamické maskování dat.
  2. Přihlaste se pomocí účtu se zvýšenými oprávněními ve skladu, buď roli správce, člena nebo přispěvatele v pracovním prostoru, nebo pomocí oprávnění řízení ve skladu.

2. Konfigurace dynamického maskování dat

  1. Přihlaste se k portálu Fabric pomocí účtu správce.

  2. V pracovním prostoru Prostředky infrastruktury přejděte do koncového bodu služby Warehouse a SQL Analytics pro Lakehouse.

  3. Vyberte možnost Nový dotaz SQL a v části Prázdné vyberte Nový dotaz SQL.

  4. Ve skriptu SQL definujte pravidla dynamického maskování dat pomocí MASKED WITH FUNCTION klauzule. Příklad:

    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
    
    • Sloupec FirstName zobrazuje pouze první a poslední dva znaky řetězce uprostřed - .
    • Sloupec LastName zobrazuje XXXX.
    • Sloupec SSN zobrazuje XXX-XX- poslední čtyři znaky řetězce.
  5. Vyberte tlačítko Spustit a spusťte skript.

  6. Potvrďte spuštění skriptu.

  7. Skript použije zadaná pravidla dynamického maskování dat na určené sloupce v tabulce.

3. Testování dynamického maskování dat

Po použití pravidel dynamického maskování dat můžete maskování otestovat dotazováním tabulky s testovacím uživatelem, který nemá oprávnění správce, člena nebo přispěvatele v pracovním prostoru nebo zvýšená oprávnění pro sklad.

  1. Přihlaste se k nástroji, jako je Azure Data Studio nebo SQL Server Management Studio jako testovací uživatel, například TestUser@contoso.com.
  2. Jako testovací uživatel spusťte dotaz na tabulku. Maskovaná data se zobrazí podle vámi definovaných pravidel.
    SELECT * FROM dbo.EmployeeData;
    
  3. Pomocí účtu správce udělte UNMASK oprávnění testovacímu uživateli.
    GRANT UNMASK ON dbo.EmployeeData TO [TestUser@contoso.com];
    
  4. Jako testovací uživatel ověřte, že se uživatel přihlásil, jak TestUser@contoso.com může zobrazit nemaskovaná data.
    SELECT * FROM dbo.EmployeeData;
    
  5. U účtu správce odvolejte UNMASK oprávnění od testovacího uživatele.
    REVOKE UNMASK ON dbo.EmployeeData TO [TestUser];
    
  6. Ověřte, že testovací uživatel nemůže zobrazit nemaskovaná data, pouze maskovaná data.
    SELECT * FROM dbo.EmployeeData;
    
  7. Pomocí účtu správce můžete udělit a odvolat UNMASK oprávnění k roli.
    GRANT UNMASK ON dbo.EmployeeData TO [TestRole];
    REVOKE UNMASK ON dbo.EmployeeData TO [TestRole];
    

4. Správa a úprava pravidel dynamického maskování dat

Pokud chcete spravovat nebo upravovat existující pravidla dynamického maskování dat, vytvořte nový skript SQL.

  1. Masku můžete přidat do existujícího sloupce pomocí MASKED WITH FUNCTION klauzule:

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

5. Vyčištění

  1. Vyčištění této testovací tabulky:
    DROP TABLE dbo.EmployeeData;