Udostępnij za pośrednictwem


Jak skonfigurować kontrolę dostępu w synchronizowanych obiektach w bezserwerowej puli SQL

W usłudze Azure Synapse Analytics bazy danych i tabele platformy Spark są udostępniane bezserwerowej puli SQL. Bazy danych lake, Parquet i tabele kopii zapasowej CSV utworzone za pomocą platformy Spark są automatycznie dostępne w bezserwerowej puli SQL. Ta funkcja umożliwia korzystanie z bezserwerowej puli SQL do eksplorowania i wykonywania zapytań dotyczących danych przygotowanych przy użyciu pul platformy Spark. Na poniższym diagramie przedstawiono omówienie architektury wysokiego poziomu, aby korzystać z tej funkcji. Najpierw usługa Azure Synapse Pipelines przenosi dane z magazynu lokalnego (lub innego) do usługi Azure Data Lake Storage. Platforma Spark może teraz wzbogacić dane i tworzyć bazy danych oraz tabele, które są synchronizowane z bezserwerową usługą Synapse SQL. Później użytkownik może wykonywać zapytania ad hoc na podstawie wzbogaconych danych lub obsługiwać je na przykład w usłudze Power BI.

Enrich in Spark, serve with SQL diagram.

Pełny dostęp administratora (sysadmin)

Po zsynchronizowaniu tych baz danych i tabel z platformy Spark do bezserwerowej puli SQL te tabele zewnętrzne w bezserwerowej puli SQL mogą służyć do uzyskiwania dostępu do tych samych danych. Jednak obiekty w bezserwerowej puli SQL są tylko do odczytu ze względu na zachowanie spójności z obiektami pul platformy Spark. Ograniczenie sprawia, że tylko użytkownicy z rolami usługi Synapse SQL Administracja istrator lub Synapse Administracja istrator mogą uzyskiwać dostęp do tych obiektów w bezserwerowej puli SQL. Jeśli użytkownik niebędący administratorem spróbuje wykonać zapytanie w zsynchronizowanej bazie danych/tabeli, zostanie wyświetlony błąd, taki jak: External table '<table>' is not accessible because content of directory cannot be listed. pomimo posiadania dostępu do danych na źródłowych kontach magazynu.

Ponieważ zsynchronizowane bazy danych w bezserwerowej puli SQL są tylko do odczytu, nie można ich modyfikować. Utworzenie użytkownika lub nadanie innym uprawnieniam zakończy się niepowodzeniem w przypadku próby. Aby odczytywać zsynchronizowane bazy danych, należy mieć uprawnienia na poziomie serwera uprzywilejowane (na przykład sysadmin). To ograniczenie występuje również w tabelach zewnętrznych w bezserwerowej puli SQL podczas korzystania z usługi Azure Synapse Link dla tabel baz danych Dataverse i lake.

Dostęp niebędący administratorem do synchronizowanych baz danych

Użytkownik, który musi odczytywać dane i tworzyć raporty, zwykle nie ma pełnego dostępu administratora (sysadmin). Ten użytkownik jest zwykle analitykiem danych, który musi tylko odczytywać i analizować dane przy użyciu istniejących tabel. Nie muszą tworzyć nowych obiektów.

Użytkownik z minimalnymi uprawnieniami powinien mieć możliwość:

  • Połączenie do bazy danych replikowanej z platformy Spark
  • Wybierz dane za pośrednictwem tabel zewnętrznych i uzyskaj dostęp do podstawowych danych usługi ADLS.

Po wykonaniu poniższego skryptu kodu umożliwi to użytkownikom niebędącym administratorem posiadanie uprawnień na poziomie serwera w celu nawiązania połączenia z dowolną bazą danych. Umożliwi to również użytkownikom wyświetlanie danych ze wszystkich obiektów na poziomie schematu, takich jak tabele lub widoki. Zabezpieczenia dostępu do danych można zarządzać w warstwie magazynu.

-- Creating Azure AD login (same can be achieved for Azure AD app)
    CREATE LOGIN [login@contoso.com] FROM EXTERNAL PROVIDER;
    go;
    
    GRANT CONNECT ANY DATABASE to [login@contoso.com];
    GRANT SELECT ALL USER SECURABLES to [login@contoso.com];
    GO;

Uwaga

Te instrukcje powinny być wykonywane w bazie danych master, ponieważ są to wszystkie uprawnienia na poziomie serwera.

Po utworzeniu nazwy logowania i udzieleniu uprawnień użytkownicy mogą uruchamiać zapytania na zsynchronizowanych tabelach zewnętrznych. To ograniczenie ryzyka można również zastosować do grup zabezpieczeń firmy Microsoft Entra.

Więcej zabezpieczeń obiektów można zarządzać za pomocą określonych schematów i zablokować dostęp do określonego schematu. Obejście wymaga dodatkowego języka DDL. W tym scenariuszu można utworzyć nową bezserwerową bazę danych, schematy i widoki, które będą wskazywać dane tabel platformy Spark w usłudze ADLS.

Dostęp do danych na koncie magazynu można zarządzać za pośrednictwem listy ACL lub zwykłych ról właściciela/czytelnika/współautora danych obiektu blob usługi Storage dla użytkowników/grup firmy Microsoft. W przypadku jednostek usługi (aplikacji Firmy Microsoft Entra) upewnij się, że używasz konfiguracji listy ACL.

Uwaga

  • Jeśli chcesz zabronić używania funkcji OPENROWSET na podstawie danych, możesz użyć DENY ADMINISTER BULK OPERATIONS to [login@contoso.com]; opcji Aby uzyskać więcej informacji, odwiedź stronę DENY Server permissions (ODMOWA uprawnień serwera).
  • Jeśli chcesz zabronić używania określonych schematów, możesz użyć DENY SELECT ON SCHEMA::[schema_name] TO [login@contoso.com]; opcji Aby uzyskać więcej informacji, odwiedź stronę ODMOWA uprawnień schematu.

Następne kroki

Aby uzyskać więcej informacji, zobacz Uwierzytelnianie SQL.