Udostępnij przez


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

W usłudze Azure Synapse Analytics bazy danych platformy Spark i tabele są współużytkowane z bezserwerową pulą SQL. Bazy danych Lake, Parqueti tabele wspierane przez 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.

Wzbogacaj na platformie Spark, obsługuj za pomocą diagramu SQL.

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 utrzymanie spójności z obiektami pul Spark. Ograniczenie sprawia, że tylko użytkownicy z rolami administratora SQL usługi Synapse lub administratora usługi Synapse 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 podstawowych 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 w przypadku korzystania z tabel Azure Synapse Link dla usługi Dataverse i tabel baz danych typu 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ść:

  • Nawiązywanie połączenia z bazą 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 dodatkowych instrukcji 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 magazynu obiektów blob 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 nad danymi, możesz użyć DENY ADMINISTER BULK OPERATIONS to [login@contoso.com];. Więcej informacji znajdziesz na stronie DENY Server permissions.
  • Jeśli chcesz zabronić używania określonych schematów, możesz użyć DENY SELECT ON SCHEMA::[schema_name] TO [login@contoso.com];. Aby uzyskać więcej informacji, odwiedź ODMAWIANIA uprawnień do schematów.

Następne kroki

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