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:
- Usługi Azure SQL Database i Azure SQL Managed Instance
- Program SQL Server na maszynach wirtualnych platformy Azure
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:
- Utwórz i wypełnij dzierżawę firmy Microsoft Entra.
- Utwórz serwer logiczny lub wystąpienie na platformie Azure.
- Przypisz administratora firmy Microsoft Entra do serwera lub wystąpienia.
- Utwórz podmioty zabezpieczeń SQL w bazie danych, które są mapowane na tożsamości firmy Microsoft Entra.
- Skonfiguruj aplikacje klienckie, aby łączyć się przy użyciu bibliotek tożsamości platformy Azure i metod uwierzytelniania.
- 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:
- Implementowanie synchronizacji skrótów haseł za pomocą usługi Microsoft Entra Connect Sync
- Uwierzytelnianie przekazywane przez firmę Microsoft Entra
- Wdrażanie usług Active Directory Federation Services na platformie Azure i w usłudze Microsoft Entra Connect i federacji
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.
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.
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
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 DATABASE
bazy 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:
- SQL Server Management Studio (SSMS) 18.6 lub nowszy
- SQL Server Data Tools for Visual Studio 2015, wersja 14.0.60311.1 (kwiecień 2016) lub nowsza
- .NET Framework Dostawca danych dla programu SqlServer, minimalna wersja programu .NET Framework 4.6
- Począwszy od wersji 15.0.1, narzędzie sqlcmd i narzędzie bcp obsługują uwierzytelnianie interakcyjne usługi Active Directory przy użyciu uwierzytelniania wieloskładnikowego.
- Sterownik JDBC firmy Microsoft 6.0 dla programu SQL Server obsługuje uwierzytelnianie firmy Microsoft Entra. Zobacz również Ustawianie właściwości połączenia.
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 dodbcreator
roli serwera.
- Rozszerzenie polega na tym, że po dodaniu grupy w ramach
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.
Powiązana zawartość
- Konfigurowanie i zarządzanie uwierzytelnianiem usługi Microsoft Entra za pomocą usługi Azure SQL
- Samouczek: zabezpieczanie przy użyciu identyfikatorów logowania firmy Microsoft — Azure SQL Managed Instance
- Autoryzowanie dostępu do bazy danych w usługach SQL Database, SQL Managed Instance i Azure Synapse Analytics
- Podmioty zabezpieczeń bazy danych
- Role bazy danych
- SKŁADNIA CREATE LOGIN dla jednostek usługi Microsoft Entra Server (identyfikatorów logowania) w usłudze SQL Managed Instance
- Reguły zapory bazującej na adresach IP dla usługi Azure SQL Database i Azure Synapse