Udostępnij za pośrednictwem


Uwierzytelnianie usługi Microsoft Entra w usłudze Azure SQL

Dotyczy: Azure SQL Database Azure SQL Managed InstanceAzure Synapse Analytics

Ten artykuł zawiera szczegółowe omówienie korzystania z uwierzytelniania firmy Microsoft w usłudze Azure SQL Database, azure SQL Managed Instance, programu SQL Server na maszynach wirtualnych platformy Azure, usługi Synapse SQL w usługach Azure Synapse Analytics i SQL Server dla systemów Windows i Linux.

Jeśli chcesz skonfigurować uwierzytelnianie firmy Microsoft Entra, zapoznaj się z artykułem:

Uwaga

Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).

Omówienie

Microsoft Entra ID umożliwia centralne zarządzanie tożsamościami ludzi i usług w infrastrukturze danych. Integrując firmę Microsoft Entra z usługą Azure SQL na potrzeby uwierzytelniania, można uprościć zarządzanie tożsamościami i uprawnieniami, jednocześnie włączając szczegółowy dostęp warunkowy i nadzór nad wszystkimi połączeniami z danymi.

Korzystanie z uwierzytelniania firmy Microsoft Entra zapewnia następujące korzyści:

  • Zastępuje mniej bezpieczne metody uwierzytelniania, takie jak nazwy użytkowników i hasła.
  • Eliminuje lub pomaga zatrzymać rozprzestrzenianie się tożsamości użytkowników na serwerach.
  • Grupy entra firmy Microsoft umożliwiają abstrakcje zarządzania uprawnieniami bazy danych od poszczególnych kont i grup operacyjnych.
  • Umożliwia rotację haseł w jednym miejscu.
  • Uwierzytelnianie tylko firmy Microsoft zapewnia pełną alternatywę dla uwierzytelniania SQL.
  • Tożsamości zarządzane dla zasobów platformy Azure eliminują konieczność przechowywania haseł dla usług łączących się z bazami danych oraz połączeń z baz danych do innych zasobów platformy Azure.
  • Umożliwia nowoczesne mechanizmy kontroli zabezpieczeń, w tym silne uwierzytelnianie wieloskładnikowe z szeregiem łatwych opcji weryfikacji, takich jak rozmowa telefoniczna, wiadomość SMS, karta inteligentna z numerem PIN lub powiadomienie aplikacji mobilnej.
  • Microsoft Entra ID umożliwia integrację z wieloma nowoczesnymi protokołami uwierzytelniania, w tym OpenID Connect, OAuth2.0, Ograniczone delegowanie Kerberos i nie tylko.
  • Umożliwia scentralizowane monitorowanie połączeń ze źródłami danych.
  • Włącza mechanizmy kontroli dostępu warunkowego, takie jak wymaganie zgodnych urządzeń lub metod uwierzytelniania dla pomyślnych połączeń.
  • Centralnie zarządzaj uwierzytelnianiem i monitoruj je za pomocą zasad platformy Azure.

Uwaga

Uwierzytelnianie Entra firmy Microsoft obsługuje tylko tokeny dostępu pochodzące z identyfikatora Entra firmy Microsoft, a nie tokeny dostępu innych firm. Identyfikator Entra firmy Microsoft nie obsługuje również przekierowywania zapytań microsoft Entra ID do punktów końcowych innych firm. Dotyczy to wszystkich platform SQL i wszystkich systemów operacyjnych obsługujących uwierzytelnianie firmy Microsoft Entra.

Kroki w konfiguracji

Ogólne kroki konfigurowania uwierzytelniania firmy Microsoft są następujące:

  1. Utwórz i wypełnij dzierżawę firmy Microsoft Entra.
  2. Utwórz serwer logiczny lub wystąpienie na platformie Azure.
  3. Przypisz administratora firmy Microsoft Entra do serwera lub wystąpienia.
  4. Utwórz podmioty zabezpieczeń SQL w bazie danych, które są mapowane na tożsamości firmy Microsoft Entra.
  5. Skonfiguruj aplikacje klienckie, aby łączyć się przy użyciu bibliotek tożsamości platformy Azure i metod uwierzytelniania.
  6. Nawiąż połączenie z bazą danych przy użyciu tożsamości firmy Microsoft Entra.

Obsługiwane tożsamości i metody uwierzytelniania

Usługa Azure SQL obsługuje używanie następujących tożsamości firmy Microsoft Entra jako identyfikatorów logowania i użytkowników (podmiotów zabezpieczeń) na serwerach i bazach danych:

  • Użytkownicy firmy Microsoft Entra: dowolny typ użytkownika w dzierżawie firmy Microsoft Entra, który obejmuje użytkowników wewnętrznych, użytkowników zewnętrznych, gości i członków. Członkowie domeny usługi Active Directory federacyjnej z identyfikatorem Entra firmy Microsoft są również obsługiwane i można je skonfigurować pod kątem bezproblemowego logowania jednokrotnego.
  • Aplikacje: aplikacje istniejące na platformie Azure mogą używać jednostek usługi lub tożsamości zarządzanych do uwierzytelniania bezpośrednio w usłudze Azure SQL. Korzystanie z tożsamości zarządzanych jest preferowane, ponieważ uwierzytelnianie jest bez hasła i eliminuje potrzebę poświadczeń zarządzanych przez deweloperów.
  • Grupy firmy Microsoft Entra, które mogą uprościć zarządzanie dostępem w całej organizacji, zarządzając dostępem użytkowników i aplikacji na podstawie członkostwa w grupie.

W przypadku tożsamości użytkowników obsługiwane są następujące metody uwierzytelniania:

  • Firma Microsoft Entra Integrated (uwierzytelnianie systemu Windows) obsługiwana przez tożsamości hybrydowe firmy Microsoft z usługą Active Directory [federation].
  • Microsoft Entra MFA lub uwierzytelnianie wieloskładnikowe, które wymaga dodatkowych kontroli zabezpieczeń poza wiedzą użytkownika.
  • Uwierzytelnianie za pomocą hasła firmy Microsoft, które używa poświadczeń użytkownika przechowywanych i zarządzanych w identyfikatorze Entra firmy Microsoft.
  • Uwierzytelnianie domyślne firmy Microsoft, które skanuje różne pamięci podręczne poświadczeń na maszynie aplikacji i może używać tokenów użytkownika do uwierzytelniania w usłudze SQL.

W przypadku tożsamości usług lub obciążeń obsługiwane są następujące metody uwierzytelniania:

  • Tożsamości zarządzane dla zasobów platformy Azure, przypisane przez użytkownika i przypisane przez system. Uwierzytelnianie tożsamości zarządzanej jest oparte na tokenach, w których tożsamość jest przypisywana do zasobu, który chce się z niego uwierzytelnić. Platforma tożsamości platformy Azure weryfikuje tę relację, która umożliwia uwierzytelnianie bez hasła.
  • Nazwa główna usługi i wpis tajny aplikacji (klienta) firmy Microsoft Entra. Ta metoda uwierzytelniania nie jest zalecana ze względu na ryzyko związane z hasłami, które można odgadnąć i wycieknąć.
  • Uwierzytelnianie domyślne firmy Microsoft, które skanuje różne pamięci podręczne poświadczeń na maszynie aplikacji i może używać tokenów aplikacji do uwierzytelniania w języku SQL.

Administrator firmy Microsoft Entra

Aby włączyć uwierzytelnianie firmy Microsoft Entra, administrator entra firmy Microsoft musi być ustawiony dla serwera logicznego lub wystąpienia zarządzanego. Ten administrator istnieje wraz z administratorem programu SQL Server (SA). Administrator firmy Microsoft Entra może być dowolnym obiektem zabezpieczeń w dzierżawie platformy Azure, w tym użytkownikami firmy Microsoft Entra, grupami, jednostkami usługi i tożsamościami zarządzanymi. Administrator firmy Microsoft Entra jest właściwością pojedynczą, a nie listą, co oznacza, że w dowolnym momencie można skonfigurować tylko jedną tożsamość. Usunięcie administratora firmy Microsoft Entra z serwera powoduje wyłączenie wszystkich połączeń opartych na uwierzytelnianiu firmy Microsoft, nawet w przypadku istniejących użytkowników firmy Microsoft Entra z uprawnieniami w bazie danych.

Napiwek

Grupy Entra firmy Microsoft umożliwiają wielu tożsamościom działanie jako administrator firmy Microsoft Entra na serwerze. Gdy administrator jest ustawiony na grupę, wszyscy członkowie grupy dziedziczą rolę administratora Firmy Microsoft Entra. Administrator grupy Entra firmy Microsoft zwiększa możliwości zarządzania przez przeniesienie zarządzania przez administratora z akcji płaszczyzny danych serwera do identyfikatora Entra firmy Microsoft i rąk właścicieli grup. Grupy mogą być używane dla wszystkich tożsamości firmy Microsoft entra, które łączą się z bazą danych SQL, co pozwala na jednorazową konfigurację użytkownika i uprawnień na serwerze i bazach danych, pozostawiając wszystkie zarządzanie użytkownikami do grup.

Administrator firmy Microsoft Entra odgrywa szczególną rolę: jest to pierwsze konto, które może tworzyć inne identyfikatory logowania firmy Microsoft Entra (w wersji zapoznawczej w usłudze SQL Database) i użytkowników, łącznie określane jako podmioty zabezpieczeń. Administrator jest użytkownikiem zawartej bazy danych w master bazie danych serwera. Konta administratorów są członkami roli db_owner w każdej bazie danych użytkowników, a każda baza danych użytkowników jest wprowadzana jako użytkownik dbo . Aby uzyskać więcej informacji na temat kont administratorów, zobacz Zarządzanie bazami danych i identyfikatorami logowania.

Podmioty zabezpieczeń firmy Microsoft

Uwaga

Podmioty zabezpieczeń serwera Microsoft Entra (identyfikatory logowania) są obecnie dostępne w publicznej wersji zapoznawczej dla usług Azure SQL Database i Azure Synapse Analytics. Identyfikatory logowania entra firmy Microsoft są ogólnie dostępne dla usługi Azure SQL Managed Instance i programu SQL Server 2022.

Tożsamości firmy Microsoft Entra można tworzyć jako podmioty zabezpieczeń w usłudze Azure SQL na trzy sposoby:

  • jako podmioty zabezpieczeń serwera lub identyfikatory logowania (w wersji zapoznawczej usługi Azure SQL Database)
  • jako użytkownicy logowania (typ podmiotu zabezpieczeń bazy danych)
  • jako użytkownicy zawartej bazy danych

Ważne

Uwierzytelnianie entra firmy Microsoft dla usługi Azure SQL nie integruje się z kontrolą dostępu opartą na rolach platformy Azure. Używanie tożsamości entra firmy Microsoft do nawiązywania połączenia z usługą Azure SQL i wykonywania zapytań wymaga utworzenia tych tożsamości jako podmiotów zabezpieczeń firmy Microsoft w bazach danych, do których potrzebują dostępu. Role SQL Server Contributor i SQL DB Contributor służą do zabezpieczania operacji wdrażania związanych z zarządzaniem, a nie dostępu do łączności z bazą danych.

Identyfikatory logowania (podmioty zabezpieczeń serwera)

Podmioty zabezpieczeń serwera (identyfikatory logowania) dla tożsamości entra firmy Microsoft są ogólnie dostępne dla usług Azure SQL Managed Instance, SQL Server 2022 i SQL Server na maszynach wirtualnych platformy Azure. Identyfikatory logowania entra firmy Microsoft są w wersji zapoznawczej dla usługi Azure SQL Database.

W poniższym języku T-SQL pokazano, jak utworzyć identyfikator logowania firmy Microsoft Entra:

CREATE LOGIN [MSEntraUser] FROM EXTERNAL PROVIDER

Identyfikator logowania firmy Microsoft Entra ma następujące wartości właściwości w sys.server_principals:

Właściwości Wartość
SID (identyfikator zabezpieczeń) Binarna reprezentacja identyfikatora obiektu tożsamości Firmy Microsoft Entra
type E = identyfikator logowania zewnętrznego lub aplikacji z identyfikatora Entra firmy Microsoft
X = grupa zewnętrzna z identyfikatora Entra firmy Microsoft
type_desc EXTERNAL_LOGIN dla logowania lub aplikacji firmy Microsoft Entra
EXTERNAL_GROUP dla grupy Microsoft Entra

Użytkownicy na podstawie logowania

Użytkownicy na podstawie logowania dziedziczą role i uprawnienia na poziomie serwera przypisane do logowania firmy Microsoft Entra. Użytkownicy firmy Microsoft Entra logują się w wersji zapoznawczej dla usługi Azure SQL Database.

W poniższym języku T-SQL pokazano, jak utworzyć użytkownika opartego na logowaniu dla tożsamości firmy Microsoft Entra:

CREATE USER [MSEntraUser] FROM LOGIN [MSEntraUser]

W poniższej tabeli przedstawiono wartości właściwości użytkownika opartej na logowaniu firmy Microsoft w sys.database_principals:

Właściwości Wartość
SID (identyfikator zabezpieczeń) Binarna reprezentacja identyfikatora obiektu tożsamości Firmy Microsoft Entra oraz "AADE"
type E = identyfikator logowania zewnętrznego lub aplikacji z identyfikatora Entra firmy Microsoft
X = grupa zewnętrzna z identyfikatora Entra firmy Microsoft
type_desc EXTERNAL_LOGIN dla logowania lub aplikacji firmy Microsoft Entra
EXTERNAL_GROUP dla grupy Microsoft Entra

Użytkownicy zawartej bazy danych

Użytkownicy zawartej bazy danych są przenośni z bazą danych. Nie mają żadnych połączeń z tożsamościami zdefiniowanymi na serwerze lub wystąpieniu, dlatego można je łatwo przenosić wraz z bazą danych z jednego serwera lub wystąpienia do innego bez zakłóceń.

W poniższym języku T-SQL pokazano, jak utworzyć użytkownika zawartej bazy danych dla tożsamości entra firmy Microsoft:

CREATE USER [MSEntraUser] FROM EXTERNAL PROVIDER

Użytkownik oparty na bazie danych Microsoft Entra ma te same wartości właściwości co użytkownicy logowani w sys.database_principals, z wyjątkiem sposobu konstruowania identyfikatora SID:

Właściwości Wartość
SID (identyfikator zabezpieczeń) Binarna reprezentacja identyfikatora obiektu tożsamości Firmy Microsoft Entra
type E = identyfikator logowania zewnętrznego lub aplikacji z identyfikatora Entra firmy Microsoft
X = grupa zewnętrzna z identyfikatora Entra firmy Microsoft
type_desc EXTERNAL_LOGIN dla logowania lub aplikacji firmy Microsoft Entra
EXTERNAL_GROUP dla grupy Microsoft Entra

Aby uzyskać oryginalny identyfikator GUID firmy Microsoft Entra, na podstawie którego jest oparty identyfikator SID, użyj następującej konwersji języka T-SQL:

SELECT CAST(sid AS UNIQUEIDENTIFIER) AS EntraID FROM sys.database_principals

Uwaga

Istnieje możliwość przypadkowego utworzenia zawartego użytkownika bazy danych Microsoft Entra o takiej samej nazwie, jak nazwa logowania firmy Microsoft Entra na poziomie serwera lub wystąpienia. Ponieważ podmioty zabezpieczeń nie są ze sobą połączone, użytkownik bazy danych nie dziedziczy uprawnień po logowaniu serwera, a tożsamości mogą być zawyżone w żądaniach połączeń, co powoduje niezdefiniowane zachowanie.

Użyj następującego zapytania T-SQL, aby określić, czy użytkownik bazy danych jest użytkownikiem bazy danych opartym na logowaniu lub użytkownikiem zawartej bazy danych:

SELECT CASE
    WHEN CONVERT(VARCHAR(100), sid, 2) LIKE '%AADE' AND len(sid) = 18 THEN 'login-based user'
    ELSE 'contained database user'
    END AS user_type,
    *
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

Użyj następującego zapytania T-SQL, aby wyświetlić wszystkie podmioty zabezpieczeń firmy Microsoft w bazie danych:

SELECT
  name,
  CAST(sid AS UNIQUEIDENTIFIER) AS EntraID,
  CASE WHEN TYPE = 'E' THEN 'App/User' ELSE 'Group' AS user_type,
  sid
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

Uwierzytelnianie tylko firmy Microsoft

Po włączeniu uwierzytelniania tylko w usłudze Microsoft Entra wszystkie inne metody uwierzytelniania są wyłączone i nie można ich używać do nawiązywania połączenia z serwerem, wystąpieniem lub bazą danych — w tym zabezpieczeń i wszystkich innych kont opartych na uwierzytelnianiu SQL SQL dla usługi Azure SQL, a także uwierzytelniania systemu Windows dla usługi Azure SQL Managed Instance.

Aby rozpocząć, zapoznaj się z artykułem Konfigurowanie uwierzytelniania tylko firmy Microsoft.

Uwierzytelnianie wieloskładnikowe (MFA)

Uwierzytelnianie wieloskładnikowe firmy Microsoft to funkcja zabezpieczeń zapewniana przez usługę zarządzania tożsamościami i dostępem firmy Microsoft w chmurze. Uwierzytelnianie wieloskładnikowe zwiększa bezpieczeństwo logowania użytkowników, wymagając od użytkowników dodatkowych kroków weryfikacji poza hasłem.

Uwierzytelnianie wieloskładnikowe firmy Microsoft pomaga chronić dostęp do danych i aplikacji, jednocześnie spełniając wymagania użytkowników dotyczące prostego procesu logowania. Uwierzytelnianie wieloskładnikowe dodaje dodatkową warstwę zabezpieczeń do logowania użytkowników, wymagając od użytkowników podania co najmniej dwóch czynników uwierzytelniania. Te czynniki zazwyczaj obejmują coś, co użytkownik zna (hasło), coś, co użytkownik posiada (smartfon lub token sprzętowy) i/lub coś, co użytkownik jest (dane biometryczne). Łącząc wiele czynników, uwierzytelnianie wieloskładnikowe znacznie zmniejsza prawdopodobieństwo nieautoryzowanego dostępu.

Uwierzytelnianie wieloskładnikowe to obsługiwana metoda uwierzytelniania dla usług Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics i SQL Server 2022 (16.x) i nowszych wersji.

Aby rozpocząć, zapoznaj się z artykułem Konfigurowanie uwierzytelniania wieloskładnikowego firmy Microsoft.

Pomoc techniczna firmy Microsoft Entra B2B

Uwierzytelnianie Microsoft Entra we wszystkich produktach SQL obsługuje również współpracę firmy Microsoft Entra B2B, która umożliwia firmom zapraszanie użytkowników-gości do współpracy z ich organizacją. Użytkownicy-goście mogą łączyć się z bazami danych jako indywidualni użytkownicy lub członkowie grupy Firmy Microsoft Entra. Aby uzyskać więcej informacji, zobacz Tworzenie użytkownika-gościa.

Architektura zaufania dla federacji entra firmy Microsoft z usługą Active Directory

Usługa Microsoft Entra ID integruje się również ze znanymi rozwiązaniami do zarządzania tożsamościami i dostępem, takimi jak usługa Active Directory. Dołączanie hybrydowe do lokalnej usługi AD umożliwia tożsamościom systemu Windows federacyjnym za pośrednictwem identyfikatora Entra firmy Microsoft, aby używać poświadczeń logowania jednokrotnego w celu nawiązania połączenia z usługą Azure SQL.

W przypadku federacji identyfikator Entra firmy Microsoft udostępnia dwie bezpieczne metody uwierzytelniania: uwierzytelnianie przekazywane i uwierzytelnianie skrótu hasła. Jeśli rozważasz sfederowanie lokalna usługa Active Directory z identyfikatorem Entra firmy Microsoft, zapoznaj się z artykułem Wybieranie właściwej metody uwierzytelniania dla rozwiązania tożsamości hybrydowej firmy Microsoft Entra.

Aby uzyskać więcej informacji na temat konfigurowania i synchronizacji tożsamości hybrydowych firmy Microsoft Entra, zobacz następujące artykuły:

Na tym diagramie przedstawiono przykładowe uwierzytelnianie federacyjne z infrastrukturą usług AD FS (lub użytkownik/hasło dla poświadczeń systemu Windows). Strzałki wskazują ścieżki komunikacyjne.

Diagram uwierzytelniania entra firmy Microsoft dla usługi Azure SQL.

Na poniższym diagramie przedstawiono relacje federacji, zaufania i hostowania, które umożliwiają klientowi łączenie się z bazą danych przez przesłanie tokenu. Identyfikator Entra firmy Microsoft uwierzytelnia token, a baza danych ufa mu i weryfikuje wystawcę i inne szczegóły. Klient 1 może reprezentować identyfikator Entra firmy Microsoft z użytkownikami natywnymi lub identyfikatorem Entra firmy Microsoft z użytkownikami federacyjnymi. Klient 2 reprezentuje możliwe rozwiązanie, w tym zaimportowanych użytkowników, w tym przykładzie pochodzącym z federacyjnego identyfikatora Entra firmy Microsoft z usługą ADFS synchronizowanym z identyfikatorem Microsoft Entra ID. Należy pamiętać, że dostęp do bazy danych przy użyciu uwierzytelniania firmy Microsoft Entra wymaga, aby subskrypcja hostingu była skojarzona z identyfikatorem Entra firmy Microsoft. Ta sama subskrypcja musi służyć do tworzenia zasobów usługi Azure SQL lub Azure Synapse.

Diagram przedstawia relację między subskrypcjami w konfiguracji firmy Microsoft Entra.

Uprawnienia

Uprawnienia przypisane do administratora firmy Microsoft Entra różnią się od uprawnień przypisanych podmiotów zabezpieczeń w usłudze Azure SQL. W kilku scenariuszach usługa Azure SQL wymaga również uprawnień programu Microsoft Graph do korzystania z uwierzytelniania microsoft Entra.

Uprawnienia administratora

Administrator firmy Microsoft Entra ma przypisane następujące uprawnienia i role podczas tworzenia:

  • db_owner każdej bazy danych na serwerze lub wystąpieniu

Diagram przedstawia strukturę administratora dla identyfikatora entra firmy Microsoft używanego z programem SQL Server.

Uprawnienia usługi Azure SQL

Podmiot zabezpieczeń wymaga ALTER ANY USER uprawnienia w bazie danych, aby utworzyć użytkownika. Domyślnie ALTER ANY USER jest to: konta administratora serwera, użytkownicy bazy danych z rolą CONTROL ON DATABASEbazy danych i członkowie db_owner roli bazy danych.

Aby utworzyć podmiot zabezpieczeń firmy Microsoft w usłudze Azure SQL, żądanie tożsamości musi wysłać zapytanie do programu Microsoft Graph, aby uzyskać szczegółowe informacje o jednostce. Podczas początkowego wdrażania jedyną tożsamością, która może wysyłać zapytania do programu MS Graph, jest administrator firmy Microsoft Entra; dlatego administrator musi być pierwszą tożsamością, aby utworzyć inne podmioty zabezpieczeń firmy Microsoft. Następnie może przypisać ALTER ANY USER do innych podmiotów zabezpieczeń, aby umożliwić im również tworzenie innych podmiotów zabezpieczeń firmy Microsoft.

Wdrożenia bezobsługowe z uwierzytelnianiem firmy Microsoft Entra

Ponieważ administrator firmy Microsoft Entra musi być pierwszą tożsamością, aby połączyć się z bazą danych i utworzyć innych użytkowników firmy Microsoft Entra, warto dodać tożsamość infrastruktury wdrażania jako administrator. Wdrożenia mogą następnie wykonać początkową konfigurację, np. tworzenie innych podmiotów zabezpieczeń firmy Microsoft i przypisywanie im uprawnień. Wdrożenia mogą używać narzędzi, takich jak szablony usługi ARM programu PowerShell, do tworzenia skryptów automatycznego tworzenia podmiotów zabezpieczeń. Usługa Azure SQL nie obsługuje obecnie natywnych interfejsów API do konfigurowania tworzenia użytkowników i zarządzania uprawnieniami; te operacje mogą być wykonywane tylko za pomocą bezpośredniego połączenia z wystąpieniem SQL.

Uprawnienia programu Microsoft Graph

Aby utworzyć podmioty zabezpieczeń firmy Microsoft i kilka innych scenariuszy, usługa Azure SQL musi wykonać wywołania programu Microsoft Graph, aby pobrać informacje na temat i zweryfikować istnienie tożsamości w identyfikatorze Entra firmy Microsoft. Aby to zrobić, proces SQL musi mieć lub uzyskać dostęp do uprawnień odczytu programu MS Graph w dzierżawie klienta, co jest osiągane na kilka sposobów:

  • Jeśli podmiot zabezpieczeń SQL wykonujący polecenie jest tożsamością użytkownika, do wykonywania zapytań dotyczących programu MS Graph nie są wymagane żadne dodatkowe uprawnienia w wystąpieniu SQL.
  • Jeśli jednostka SQL wykonująca polecenie jest tożsamością usługi, na przykład jednostką usługi lub tożsamością zarządzaną, wystąpienie usługi Azure SQL wymaga własnych uprawnień do wykonywania zapytań dotyczących programu MS Graph.
    • Uprawnienia aplikacji można przypisać do tożsamości serwera podstawowego (tożsamości zarządzanej) serwera logicznego lub wystąpienia zarządzanego. Proces SQL może używać tożsamości serwera podstawowego do uwierzytelniania w innych usługach platformy Azure w dzierżawie, takiej jak MS Graph. W poniższej tabeli opisano różne scenariusze i uprawnienia programu MS Graph wymagane do pomyślnego wykonania polecenia.
Scenariusz Minimalne uprawnienie
CREATE USER or CREATE LOGIN for a Microsoft Entra service principal or managed identity (TWORZENIE identyfikatora LOGOWANIA dla jednostki usługi lub tożsamości zarządzanej firmy Microsoft) Application.Read.All
CREATE USER or CREATE LOGIN for a Microsoft Entra user (TWORZENIE UŻYTKOWNIKA LUB TWORZENIE IDENTYFIKATORA LOGOWANIA dla użytkownika entra firmy Microsoft) User.Read.All
CREATE USER or CREATE LOGIN for a Microsoft Entra group (TWORZENIE UŻYTKOWNIKA lub TWORZENIE IDENTYFIKATORA LOGOWANIA dla grupy Entra firmy Microsoft) GroupMember.Read.All
Uwierzytelnianie firmy Microsoft w usłudze Azure SQL Managed Instance Rola Czytelnicy katalogu przypisana do tożsamości wystąpienia zarządzanego

Napiwek

Rola Czytelnicy katalogu jest najmniejszą rolą, którą można przypisać do tożsamości, która obejmuje wszystkie uprawnienia wymagane przez usługę Azure SQL. Korzystanie z ról ma zaletę możliwości przypisania do grup zabezpieczeń firmy Microsoft Entra, abstrakcji zarządzania od poszczególnych jednostek i grup koncepcyjnych.

Obsługa narzędzi

Program SQL Server Management Studio (SSMS) obsługuje wiele opcji połączenia uwierzytelniania firmy Microsoft, w tym uwierzytelniania wieloskładnikowego.

Narzędzia SQL Server Data Tools (SSDT) dla programu Visual Studio, począwszy od wersji 2015, obsługują uwierzytelnianie haseł, zintegrowane i interakcyjne przy użyciu identyfikatora Entra firmy Microsoft. Aby uzyskać więcej informacji, zobacz Obsługa identyfikatorów Entra firmy Microsoft w narzędziach SQL Server Data Tools (SSDT).

  • Obecnie użytkownicy firmy Microsoft Entra nie są wyświetlani w programie SSDT Eksplorator obiektów. Aby obejść ten problem, wyświetl użytkowników w sys.database_principals.

Wersje minimalne

Do korzystania z uwierzytelniania microsoft Entra w usłudze Azure SQL potrzebne są następujące minimalne wersje w przypadku korzystania z tych narzędzi:

Nawiązywanie połączenia z usługą Microsoft Entra z zasobami usługi Azure SQL

Po skonfigurowaniu uwierzytelniania microsoft Entra dla zasobu usługi Azure SQL można nawiązać połączenie przy użyciu programu SQL Server Management Studio, narzędzi SQL Server Data Tools i aplikacji klienckiej.

Ograniczenia

W przypadku korzystania z uwierzytelniania microsoft Entra w usłudze Azure SQL należy wziąć pod uwagę następujące ograniczenia:

  • Użytkownicy firmy Microsoft Entra i jednostki usługi (aplikacje firmy Microsoft Entra), którzy są członkami ponad 2048 grup zabezpieczeń firmy Microsoft Entra, nie są obsługiwane i nie mogą zalogować się do bazy danych.

  • Następujące funkcje systemowe nie są obsługiwane i zwracają wartości NULL podczas wykonywania przez podmioty zabezpieczeń firmy Microsoft Entra:

    • SUSER_ID()
    • SUSER_NAME(<ID>)
    • SUSER_SNAME(<SID>)
    • SUSER_ID(<name>)
    • SUSER_SID(<name>)
  • Zalecamy ustawienie limitu czasu połączenia na 30 sekund.

Usługi Azure SQL Database i Azure Synapse Analytics

W przypadku korzystania z uwierzytelniania entra firmy Microsoft z usługami Azure SQL Database i Azure Synapse Analytics należy wziąć pod uwagę następujące ograniczenia:

  • Użytkownicy firmy Microsoft Entra będący częścią grupy należącej db_owner do roli bazy danych mogą zobaczyć następujący błąd podczas próby użycia składni CREATE DATABASE SCOPED CREDENTIAL względem usług Azure SQL Database i Azure Synapse:

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either doesn't exist or you do not have permission to use it.

    Aby rozwiązać problem z poświadczeniami CREATE DATABASE SCOPED, dodaj tożsamość użytkownika Microsoft Entra bezpośrednio do db_owner roli.

  • Usługi Azure SQL Database i Azure Synapse Analytics nie tworzą niejawnych użytkowników zalogowanych w ramach członkostwa w grupie Firmy Microsoft Entra. W związku z tym różne operacje wymagające przypisania własności mogą zakończyć się niepowodzeniem, nawet jeśli grupa Microsoft Entra zostanie dodana jako członek do roli z tymi uprawnieniami.

    Na przykład użytkownik zalogowany do bazy danych za pośrednictwem grupy Microsoft Entra z rolą db_ddladmin nie może wykonać instrukcji CREATE SCHEMA, ALTER SCHEMA i innych instrukcji tworzenia obiektów bez jawnie zdefiniowanego schematu (na przykład tabeli, widoku lub typu). Aby rozwiązać ten problem, należy utworzyć użytkownika Entra firmy Microsoft dla tego użytkownika lub należy zmienić grupę Microsoft Entra, aby przypisać DEFAULT_SCHEMA, taką jak dbo.

  • W przypadku korzystania z replikacji geograficznej i grup trybu failover administrator firmy Microsoft Entra musi być skonfigurowany zarówno dla serwerów podstawowych, jak i pomocniczych. Jeśli serwer nie ma administratora firmy Microsoft Entra, identyfikatory logowania firmy Microsoft i użytkownicy otrzymują Cannot connect błąd.

  • Usunięcie administratora usługi Microsoft Entra dla serwera zapobiega wszelkim połączeniom uwierzytelniania firmy Microsoft z serwerem. W razie potrzeby administrator usługi SQL Database może ręcznie usunąć użytkowników usługi Microsoft Entra bezużytecznych.

Wystąpienie zarządzane Azure SQL

W przypadku korzystania z uwierzytelniania w usłudze Microsoft Entra w usłudze Azure SQL Managed Instance należy wziąć pod uwagę następujące ograniczenia:

  • Podmioty zabezpieczeń (identyfikatory logowania) serwera Firmy Microsoft i użytkownicy są obsługiwani w przypadku usługi SQL Managed Instance.

  • Ustawianie nazwy logowania grupy Entra firmy Microsoft jako właściciela bazy danych nie jest obsługiwane w usłudze SQL Managed Instance.

    • Rozszerzenie polega na tym, że po dodaniu grupy w ramach dbcreator roli serwera użytkownicy z tej grupy mogą łączyć się z wystąpieniem zarządzanym SQL i tworzyć nowe bazy danych, ale nie będą mogli uzyskać dostępu do bazy danych. Dzieje się tak, ponieważ nowy właściciel bazy danych jest administratorem, a nie użytkownikiem firmy Microsoft Entra. Ten problem nie manifestuje się, jeśli użytkownik indywidualny zostanie dodany do dbcreator roli serwera.
  • Podmioty zabezpieczeń serwera Firmy Microsoft (identyfikatory logowania) dla usługi SQL Managed Instance umożliwiają utworzenie wielu identyfikatorów logowania, które można dodać do sysadmin roli.

  • Wykonywanie zadań i zarządzania agentem SQL jest obsługiwane w przypadku logowań firmy Microsoft Entra.

  • Operacje tworzenia i przywracania kopii zapasowej bazy danych mogą być wykonywane przez podmioty zabezpieczeń serwera Firmy Microsoft (identyfikatory logowania).

  • Inspekcja wszystkich instrukcji związanych z jednostkami serwera Firmy Microsoft (identyfikatorami logowania) i zdarzeniami uwierzytelniania jest obsługiwana.

  • Dedykowane połączenie administratora dla podmiotów zabezpieczeń serwera firmy Microsoft (identyfikatorów logowania), które są członkami roli serwera sysadmin, jest obsługiwane.

    • Obsługiwane za pomocą narzędzia SQLCMD i programu SQL Server Management Studio.
  • Wyzwalacze logowania są obsługiwane w przypadku zdarzeń logowania pochodzących z podmiotów zabezpieczeń serwera Microsoft Entra (identyfikatorów logowania).

  • Usługi Service Broker i poczta bazy danych można skonfigurować przy użyciu jednostki serwera Firmy Microsoft Entra (identyfikator logowania).

  • W przypadku korzystania z grup trybu failover administrator firmy Microsoft Entra musi być skonfigurowany zarówno dla wystąpień podstawowych, jak i pomocniczych. Jeśli wystąpienie nie ma administratora firmy Microsoft Entra, identyfikatory logowania firmy Microsoft i użytkownicy otrzymują Cannot connect błąd.

  • Program PolyBase nie może uwierzytelniać się przy użyciu uwierzytelniania firmy Microsoft Entra.

  • Usunięcie administratora entra firmy Microsoft dla wystąpienia zapobiega wszelkim połączeniom uwierzytelniania entra firmy Microsoft z wystąpieniem. W razie potrzeby administrator usługi SQL Managed Instance może ręcznie usunąć użytkowników usługi Microsoft Entra bezużytecznych.