Správa uživatelských oprávnění ve fondech SQL bez serveru Azure Synapse

Dokončeno

Pro zabezpečení dat azure Storage implementuje model řízení přístupu, který podporuje řízení přístupu na základě role (Azure RBAC) i seznamy řízení přístupu (ACL), jako je Portable Operating System Interface for Unix (POSIX).

Objekt zabezpečení můžete přidružit k úrovni přístupu pro soubory a adresáře. Tato přidružení jsou zaznamenána v seznamu řízení přístupu (ACL). Každý soubor a adresář v účtu úložiště má seznam řízení přístupu. Když se objekt zabezpečení pokusí o operaci v souboru nebo adresáři, zkontroluje seznam ACL, jestli má tento objekt zabezpečení (uživatel, skupina, instanční objekt nebo spravovaná identita) správnou úroveň oprávnění k provedení operace.

Existují dva druhy seznamů řízení přístupu:

  • Přístup k seznamům ACL

    Řídí přístup k objektu. Soubory i adresáře mají přístupové seznamy ACL.

  • Výchozí seznamy ACL

    Jsou šablony seznamů ACL přidružených k adresáři, které určují přístupové seznamy ACL pro všechny podřízené položky vytvořené v daném adresáři. Soubory nemají výchozí seznamy ACL.

Oba přístupové seznamy ACL i výchozí seznamy ACL mají stejnou strukturu.

Oprávnění k objektu kontejneru jsou Read, Write a Execute a lze je použít u souborů a adresářů, jak je znázorněno v následující tabulce:

Úrovně oprávnění

Oprávnění Soubor Adresář
Číst (R) Může číst obsah souboru K výpisu obsahu adresáře vyžaduje čtení a spuštění.
Zapisovat (W) Může zapisovat do souboru nebo k němu připojovat data K vytvoření podřízených položek v adresáři vyžaduje zápis a spuštění.
Provést (X) Neznamená nic v kontextu Data Lake Storage Gen2. Vyžadováno pro procházení podřízených položek adresáře

Pokyny k nastavení seznamů ACL

Skupiny zabezpečení Microsoft Entra vždy používejte jako přiřazený objekt zabezpečení v položce seznamu ACL. Odolejte pokušení přímo přiřazovat jednotlivé uživatele nebo instanční objekty. Pomocí této struktury můžete přidávat a odebírat uživatele nebo instanční objekty bez nutnosti znovu použít seznamy ACL pro celou adresářovou strukturu. Místo toho můžete přidat nebo odebrat uživatele a instanční objekty z příslušné skupiny zabezpečení Microsoft Entra.

Existuje mnoho způsobů, jak nastavit skupiny. Představte si například, že máte adresář s názvem /LogData , který obsahuje data protokolu generovaná vaším serverem. Azure Data Factory (ADF) ingestuje data do této složky. Konkrétní uživatelé z technického týmu služeb budou nahrávat protokoly a spravovat ostatní uživatele této složky a různé clustery Databricks budou analyzovat protokoly z této složky.

Pokud chcete tyto aktivity povolit, můžete vytvořit skupinu LogsWriter a skupinu LogsReader. Potom můžete přiřadit oprávnění následujícím způsobem:

  • Přidejte skupinu LogsWriter do seznamu ACL adresáře /LogData s oprávněními rwx.
  • Přidejte skupinu LogsReader do seznamu ACL adresáře /LogData s oprávněními r-x.
  • Přidejte objekt instančního objektu nebo identitu spravované služby (MSI) pro ADF do skupiny LogsWriters.
  • Přidejte uživatele do skupiny LogsWriter v technickém týmu služeb.
  • Přidejte objekt instančního objektu nebo MSI pro Databricks do skupiny LogsReader.

Pokud uživatel v technickém týmu služeb opustí společnost, můžete ho jednoduše odebrat ze skupiny LogsWriter. Pokud jste tohoto uživatele nepřidali do skupiny, ale místo toho jste pro tohoto uživatele přidali vyhrazenou položku seznamu ACL, museli byste tuto položku seznamu ACL odebrat z adresáře /LogData . Je také nutné odebrat položku ze všech podadresářů a souborů v celé adresářové hierarchii adresáře adresáře /LogData .

Role nezbytné pro uživatele bezserverového fondu SQL

Pro uživatele, kteří potřebují přístup jen pro čtení, byste měli přiřadit roli s názvem Čtenář dat objektů blob služby Storage.

Pro uživatele, kteří potřebují přístup pro čtení a zápis , byste měli přiřadit roli s názvem Přispěvatel dat objektů blob služby Storage. Přístup pro čtení a zápis je potřeba, pokud by uživatel měl mít přístup k vytvoření externí tabulky jako výběru (CETAS).

Poznámka:

Pokud má uživatel roli Vlastník nebo Přispěvatel, tato role nestačí. Azure Data Lake Storage Gen2 má super-role, které by se měly přiřadit.

Oprávnění na úrovni databáze

Pokud chcete uživateli poskytnout podrobnější přístup, měli byste k vytváření přihlášení a uživatelů použít syntaxi Jazyka Transact-SQL.

Pokud chcete uživateli udělit přístup k jedné bezserverové databázi fondu SQL, postupujte podle kroků v tomto příkladu:

  1. Vytvoření PŘIHLÁŠENÍ

    use master
    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    
  2. Vytvoření UŽIVATELE

    use yourdb -- Use your DB name
    CREATE USER alias FROM LOGIN [alias@domain.com];
    
  3. Přidání UŽIVATELE členům zadané role

    use yourdb -- Use your DB name
    alter role db_datareader 
    Add member alias -- Type USER name from step 2
    -- You can use any Database Role which exists 
    -- (examples: db_owner, db_datareader, db_datawriter)
    -- Replace alias with alias of the user you would like to give access and domain with the company domain you are using.
    

Oprávnění na úrovni serveru

  1. Pokud chcete uživateli udělit úplný přístup ke všem databázím bezserverového fondu SQL, postupujte podle kroku v tomto příkladu:

    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];