Zarządzanie uprawnieniami użytkownika w bezserwerowych pulach SQL usługi Azure Synapse
Aby zabezpieczyć dane, usługa Azure Storage implementuje model kontroli dostępu, który obsługuje zarówno kontrolę dostępu opartą na rolach platformy Azure (RBAC) jak i listy kontroli dostępu (ACL), takie jak przenośny interfejs systemu operacyjnego dla systemu Unix (POSIX)
Podmiot zabezpieczeń można skojarzyć z poziomem dostępu dla plików i katalogów. Te skojarzenia są przechwytywane na liście kontroli dostępu (ACL). Każdy plik i katalog na koncie magazynu mają listę kontroli dostępu. Gdy podmiot zabezpieczeń próbuje wykonać operację w pliku lub katalogu, sprawdzanie listy ACL określa, czy jednostka zabezpieczeń (użytkownik, grupa, jednostka usługi lub tożsamość zarządzana) ma prawidłowy poziom uprawnień do wykonania operacji.
Istnieją dwa rodzaje list kontroli dostępu:
Listy ACL dostępu
Kontroluje dostęp do obiektu. Pliki i katalogi mają osobne listy ACL dostępu.
Domyślne listy ACL
To szablony list ACL skojarzonych z katalogiem, które określają listy ACL dostępu dla wszystkich elementów podrzędnych utworzonych w tym katalogu. Pliki nie mają domyślnych list ACL.
Listy ACL dostępu i domyślne listy ACL mają taką samą strukturę.
Uprawnienia do obiektu kontenera to Odczyt, Zapis i Wykonywanie oraz mogą być używane w plikach i katalogach, jak pokazano w poniższej tabeli:
Poziomy uprawnień
Uprawnienie | Plik | Katalog |
---|---|---|
Odczyt (R) | Może odczytywać zawartości pliku | Wymaga odczytu i wykonania, aby wyświetlić listę zawartości katalogu |
Zapis (W) | Może zapisywać w pliku lub dołączać do pliku | Wymaga zapisu i wykonywania w celu utworzenia elementów podrzędnych w katalogu |
Wykonanie (X) | Nie oznacza nic w kontekście usługi Data Lake Storage Gen2 | Wymagane do przechodzenia przez elementy podrzędne katalogu |
Wskazówki dotyczące konfigurowania list ACL
Zawsze używaj grup zabezpieczeń Entra firmy Microsoft jako przypisanego podmiotu zabezpieczeń we wpisie listy ACL. Unikaj bezpośredniego przypisywania poszczególnych użytkowników lub zleceniodawców usług. Użycie tej struktury umożliwia dodawanie i usuwanie użytkowników lub jednostek usługi bez konieczności ponownego stosowania list ACL do całej struktury katalogów. Zamiast tego możesz po prostu dodawać lub usuwać użytkowników i jednostki usługi z odpowiedniej grupy zabezpieczeń firmy Microsoft Entra.
Istnieje wiele sposobów konfigurowania grup. Załóżmy na przykład, że masz katalog o nazwie /LogData , który przechowuje dane dziennika generowane przez serwer. Usługa Azure Data Factory (ADF) pozyskiwa dane do tego folderu. Konkretni użytkownicy z zespołu inżynierów usług będą przekazywać dzienniki i zarządzać innymi użytkownikami tego folderu, a różne klastry usługi Databricks będą analizować dzienniki z tego folderu.
Aby włączyć te działania, możesz utworzyć grupę LogsWriter i grupę LogsReader. Następnie można przypisać uprawnienia w następujący sposób:
- Dodaj grupę LogsWriter do listy ACL katalogu /LogData z uprawnieniami rwx.
- Dodaj grupę LogsReader do listy ACL katalogu /LogData z uprawnieniami r-x.
- Dodaj obiekt jednostki usługi lub tożsamość usługi zarządzanej (MSI) dla usługi ADF do grupy LogsWriters.
- Dodaj użytkowników w zespole inżynierów usług do grupy LogsWriter.
- Dodaj obiekt jednostki usługi lub tożsamość usługi zarządzanej dla usługi Databricks do grupy LogsReader.
Jeśli użytkownik w zespole inżynierów usług opuści firmę, możesz je usunąć z grupy LogsWriter. Jeśli nie dodano tego użytkownika do grupy, ale zamiast tego dodano dedykowany wpis listy ACL dla tego użytkownika, należy usunąć ten wpis listy ACL z katalogu /LogData . Należy również usunąć wpis ze wszystkich podkatalogów i plików w całej hierarchii katalogów katalogu /LogData .
Role niezbędne dla użytkowników bezserwerowej puli SQL
W przypadku użytkowników, którzy potrzebują dostępu tylko do odczytu, należy przypisać rolę o nazwie Czytelnik danych obiektu blob usługi Storage.
W przypadku użytkowników, którzy potrzebują dostępu do odczytu/zapisu , należy przypisać rolę o nazwie Współautor danych obiektu blob usługi Storage. Dostęp do odczytu/zapisu jest wymagany, jeśli użytkownik powinien mieć dostęp do tworzenia tabeli zewnętrznej podczas wybierania (CETAS).
Uwaga
Jeśli użytkownik ma rolę Właściciel lub Współautor, ta rola nie jest wystarczająca. Usługa Azure Data Lake Storage gen 2 ma role superrole, które należy przypisać.
Uprawnienie na poziomie bazy danych
Aby zapewnić bardziej szczegółowy dostęp do użytkownika, należy użyć składni języka Transact-SQL do tworzenia identyfikatorów logowania i użytkowników.
Aby udzielić użytkownikowi dostępu do pojedynczej bezserwerowej bazy danych puli SQL, wykonaj kroki opisane w tym przykładzie:
Tworzenie identyfikatora LOGOWANIA
use master CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
Tworzenie UŻYTKOWNIKA
use yourdb -- Use your DB name CREATE USER alias FROM LOGIN [alias@domain.com];
Dodawanie użytkownika do członków określonej roli
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.
Uprawnienia na poziomie serwera
Aby udzielić użytkownikowi pełnego dostępu do wszystkich bezserwerowych baz danych puli SQL, wykonaj kroki opisane w tym przykładzie:
CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER; ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];