Konfigurowanie i zarządzanie uwierzytelnianiem usługi Microsoft Entra za pomocą usługi Azure SQL

Dotyczy: Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

W tym artykule pokazano, jak utworzyć i wypełnić dzierżawę firmy Microsoft Entra oraz użyć identyfikatora Entra firmy Microsoft (wcześniej usługi Azure Active Directory) z usługą Azure SQL Database, usługą Azure SQL Managed Instance i usługą Azure Synapse Analytics. Aby zapoznać się z omówieniem, zobacz Microsoft Entra authentication (Uwierzytelnianie entra firmy Microsoft).

Uwaga

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

Metody uwierzytelniania firmy Microsoft Entra

Identyfikator Entra firmy Microsoft obsługuje następujące metody uwierzytelniania:

  • Tożsamości tylko w chmurze w usłudze Microsoft Entra
  • Tożsamości hybrydowe firmy Microsoft Entra, które obsługują:
    • Uwierzytelnianie w chmurze z dwiema opcjami w połączeniu z bezproblemowym logowaniem jednokrotnym
      • Microsoft Entra password hash authentication (Uwierzytelnianie skrótu haseł firmy Microsoft)
      • Uwierzytelnianie przekazywane przez firmę Microsoft Entra
    • Uwierzytelnianie federacyjne

Aby uzyskać więcej informacji na temat metod uwierzytelniania entra firmy Microsoft i wybranej metody, zobacz Wybieranie właściwej metody uwierzytelniania dla rozwiązania tożsamości hybrydowej firmy Microsoft Entra.

Aby uzyskać więcej informacji na temat tożsamości hybrydowych, konfiguracji i synchronizacji firmy Microsoft, zobacz:

Tworzenie i wypełnianie dzierżawy firmy Microsoft Entra

Utwórz dzierżawę firmy Microsoft Entra i wypełnij ją użytkownikami i grupami. Dzierżawy firmy Microsoft Entra można zarządzać w całości na platformie Azure lub używać do federacji usługi lokalna usługa Active Directory Domain Service.

Aby uzyskać więcej informacji, zobacz:

Kojarzenie lub dodawanie subskrypcji platformy Azure do identyfikatora entra firmy Microsoft

  1. Skojarz subskrypcję platformy Azure z identyfikatorem Entra firmy Microsoft, tworząc katalog zaufany dla subskrypcji platformy Azure hostująca bazę danych. Aby uzyskać szczegółowe informacje, zobacz Kojarzenie lub dodawanie subskrypcji platformy Azure do dzierżawy usługi Microsoft Entra.

  2. Użyj przełącznika katalogów w witrynie Azure Portal, aby przełączyć się do subskrypcji skojarzonej z domeną.

    Ważne

    Każda subskrypcja platformy Azure ma relację zaufania z wystąpieniem firmy Microsoft Entra. Ufa katalogowi uwierzytelnianie użytkowników, usług i urządzeń. Wiele subskrypcji może ufać temu samemu katalogowi, ale dana subskrypcja może ufać tylko jednemu katalogowi. Ta relacja zaufania, która ma subskrypcję z katalogiem, różni się od subskrypcji ze wszystkimi innymi zasobami na platformie Azure (witrynami internetowymi, bazami danych itd.), które są bardziej podobne do zasobów podrzędnych subskrypcji. Jeśli subskrypcja wygaśnie, dostęp do innych zasobów skojarzonych z subskrypcją również nie będzie możliwy. Jednak katalog pozostaje na platformie Azure i możesz skojarzyć inną subskrypcję z tym katalogiem i nadal zarządzać użytkownikami katalogu. Aby uzyskać więcej informacji na temat zasobów, zobacz Omówienie dostępu do zasobów na platformie Azure. Aby dowiedzieć się więcej na temat tej zaufanej relacji, zobacz Jak skojarzyć lub dodać subskrypcję platformy Azure do identyfikatora Entra firmy Microsoft.

Administrator firmy Microsoft Entra z serwerem w usłudze SQL Database

Każdy serwer logiczny na platformie Azure (który hostuje usługę SQL Database lub Azure Synapse) rozpoczyna się od jednego konta administratora serwera, które jest administratorem całego serwera. Utwórz drugie konto administratora jako konto Microsoft Entra. Ten podmiot zabezpieczeń jest tworzony jako użytkownik zawartej bazy danych w master bazie danych serwera. konta Administracja istrator 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.

Administrator firmy Microsoft Entra musi być skonfigurowany zarówno dla serwerów podstawowych, jak i pomocniczych w przypadku korzystania z identyfikatora Entra firmy Microsoft z replikacją geograficzną. Jeśli serwer nie ma administratora firmy Microsoft Entra, identyfikatory logowania firmy Microsoft Entra i użytkownicy otrzymają komunikat Cannot connect o błędzie serwera.

Uwaga

Użytkownicy nie na podstawie konta Microsoft Entra (w tym konta administratora serwera) nie mogą tworzyć użytkowników opartych na usłudze Microsoft Entra, ponieważ nie mają uprawnień do weryfikowania proponowanych użytkowników bazy danych przy użyciu identyfikatora Microsoft Entra.

Aprowizuj administratora usługi Microsoft Entra (SQL Managed Instance)

Ważne

Wykonaj te kroki tylko wtedy, gdy aprowizujesz wystąpienie zarządzane usługi Azure SQL. Tę operację można wykonać tylko za pomocą Administracja istratora globalnego lub Administracja istratora ról uprzywilejowanych w usłudze Microsoft Entra ID.

Rolę Czytelnicy katalogu można przypisać do grupy w identyfikatorze Entra firmy Microsoft. Właściciele grup mogą następnie dodać tożsamość wystąpienia zarządzanego jako członek tej grupy, co umożliwia aprowizację administratora usługi Microsoft Entra dla wystąpienia zarządzanego SQL. Aby uzyskać więcej informacji na temat tej funkcji, zobacz Rola czytelników katalogów w usłudze Microsoft Entra for Azure SQL.

Wystąpienie zarządzane SQL musi mieć uprawnienia do odczytywania identyfikatora entra firmy Microsoft w celu wykonywania zadań, takich jak uwierzytelnianie użytkowników za pośrednictwem członkostwa w grupie zabezpieczeń lub tworzenia nowych użytkowników. Aby to zadziałało, musisz przyznać usłudze SQL Managed Instance uprawnienie do odczytu identyfikatora Entra firmy Microsoft. Można to zrobić przy użyciu witryny Azure Portal lub programu PowerShell.

Azure Portal

Aby przyznać usłudze SQL Managed Instance uprawnienia do odczytu do identyfikatora Entra firmy Microsoft przy użyciu witryny Azure Portal, zaloguj się jako administrator globalny Administracja istrator i wykonaj następujące kroki:

  1. W witrynie Azure Portal w prawym górnym rogu wybierz swoje konto, a następnie wybierz pozycję Przełącz katalogi , aby potwierdzić, który katalog jest twoim bieżącym katalogiem. W razie potrzeby przełącz katalogi.

    Screenshot of the Azure portal showing where to switch your directory.

  2. Wybierz prawidłowy katalog Microsoft Entra jako bieżący katalog.

    Ten krok powoduje połączenie subskrypcji skojarzonej z identyfikatorem Entra firmy Microsoft z wystąpieniem zarządzanym SQL, dzięki czemu dzierżawa microsoft Entra i wystąpienie zarządzane SQL używają tej samej subskrypcji.

  3. Teraz możesz wybrać administratora usługi Microsoft Entra dla wystąpienia zarządzanego SQL. W tym celu przejdź do zasobu wystąpienia zarządzanego w witrynie Azure Portal i wybierz pozycję Administrator firmy Microsoft Entra w obszarze Ustawienia.

    Screenshot of the Azure portal showing the Microsoft Entra admin page open for the selected SQL managed instance.

  4. Wybierz baner w górnej części strony administratora firmy Microsoft Entra i przyznaj uprawnienia bieżącemu użytkownikowi.

    Screenshot of the dialog for granting permissions to a SQL managed instance for accessing Microsoft Entra ID with the Grant permissions button selected.

  5. Po pomyślnym zakończeniu operacji w prawym górnym rogu zostanie wyświetlone następujące powiadomienie:

    Screenshot of a notification confirming that Microsoft Entra ID read permissions have been successfully updated for the managed instance.

  6. Na stronie Administratora firmy Microsoft Entra wybierz pozycję Ustaw administratora na pasku nawigacyjnym, aby otworzyć okienko Identyfikator entra firmy Microsoft.

    Screenshot showing the Set admin command highlighted on the Microsoft Entra admin page for the selected SQL managed instance.

  7. W okienku Microsoft Entra ID wyszukaj użytkownika, zaznacz pole wyboru obok użytkownika lub grupy, aby być administratorem, a następnie naciśnij przycisk Wybierz , aby zamknąć okienko i wrócić do strony administratora firmy Microsoft Entra dla wystąpienia zarządzanego.

    W okienku Identyfikator entra firmy Microsoft są wyświetlane wszystkie elementy członkowskie i grupy w bieżącym katalogu. Nie można wybrać wyszarywanych użytkowników lub grup, ponieważ nie są one obsługiwane jako administratorzy firmy Microsoft Entra. Zobacz listę obsługiwanych administratorów w temacie Funkcje i ograniczenia firmy Microsoft. Kontrola dostępu oparta na rolach (RBAC) platformy Azure ma zastosowanie tylko do witryny Azure Portal i nie jest propagowana do usługi SQL Database, SQL Managed Instance ani Azure Synapse.

  8. Na pasku nawigacyjnym strony administratora usługi Microsoft Entra dla wystąpienia zarządzanego wybierz pozycję Zapisz , aby potwierdzić administratora firmy Microsoft Entra.

    Screenshot of the Microsoft Entra admin page with the Save button in the top row next to the Set admin and Remove admin buttons.

    Proces zmiany administratora może potrwać kilka minut. Następnie nowy administrator pojawi się w polu Administratora firmy Microsoft Entra.

    Identyfikator obiektu jest wyświetlany obok nazwy administratora dla użytkowników i grup firmy Microsoft Entra. W przypadku aplikacji (jednostek usługi) zostanie wyświetlony identyfikator aplikacji.

Po aprowizacji administratora usługi Microsoft Entra dla wystąpienia zarządzanego SQL możesz rozpocząć tworzenie podmiotów zabezpieczeń serwera Microsoft Entra (identyfikatorów logowania) przy użyciu składni CREATE LOGIN . Aby uzyskać więcej informacji, zobacz Omówienie usługi SQL Managed Instance.

Napiwek

Aby usunąć Administracja później, w górnej części strony administratora firmy Microsoft Entra wybierz pozycję Usuń administratora, a następnie wybierz pozycję Zapisz.

PowerShell

Aby przy użyciu programu PowerShell udzielić uprawnień do odczytu usługi SQL Managed Instance do identyfikatora Entra firmy Microsoft, uruchom następujący skrypt:

# This script grants "Directory Readers" permission to a service principal representing the SQL Managed Instance.
# It can be executed only by a user who is a member of the **Global Administrator** or **Privileged Roles Administrator** role.

Import-Module Microsoft.Graph.Authentication
$managedInstanceName = "<ManagedInstanceName>" # Enter the name of your managed instance
$tenantId = "<TenantId>"                       # Enter your tenant ID

Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
 
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
    # Instantiate an instance of the role template
    $roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
    New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
    $role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}

# Get service principal for your SQL Managed Instance
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$managedInstanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
    Write-Output "Error: No service principal with name '$($managedInstanceName)' found, make sure that managedInstanceName parameter was entered correctly."
    exit
}
if (-not ($roleMember.Count -eq 1)) {
    Write-Output "Error: Multiple service principals with name '$($managedInstanceName)'"
    Write-Output $roleMember | Format-List DisplayName, Id, AppId
    exit
}

# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
    # Add principal to Directory Readers role
    Write-Output "Adding service principal '$($managedInstanceName)' to 'Directory Readers' role..."
    $body = @{
        "@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
    }
    New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
    Write-Output "'$($managedInstanceName)' service principal added to 'Directory Readers' role."
} else {
    Write-Output "Service principal '$($managedInstanceName)' is already member of 'Directory Readers' role."
}

Program PowerShell dla usługi SQL Managed Instance

Aby uruchomić polecenia cmdlet programu PowerShell, musisz mieć zainstalowany i uruchomiony program Azure PowerShell. Aby uzyskać szczegółowe informacje, zobacz artykuł Instalowanie i konfigurowanie programu Azure PowerShell.

Ważne

Usługa Azure SQL Managed Instance nadal obsługuje moduł Azure Resource Manager (RM) programu PowerShell, ale wszystkie przyszłe programowanie dotyczy modułu Az.Sql. Moduł AzureRM będzie otrzymywać poprawki błędów do co najmniej grudnia 2020 r. Argumenty poleceń w module Az i modułach AzureRm są zasadniczo identyczne. Aby uzyskać więcej informacji na temat ich zgodności, zobacz Wprowadzenie do nowego modułu Az programu Azure PowerShell.

Aby aprowizować administratora firmy Microsoft Entra, wykonaj następujące polecenia programu Azure PowerShell:

  • Connect-AzAccount
  • Select-AzSubscription

Polecenia cmdlet używane do aprowizowania administratora usługi Microsoft Entra dla usługi SQL Managed Instance i zarządzania nimi są wymienione w poniższej tabeli:

Nazwa polecenia cmdlet opis
Set-AzSqlInstanceActiveDirectory Administracja istrator Aprowizuje administratora usługi Microsoft Entra dla wystąpienia zarządzanego SQL w bieżącej subskrypcji. (Musi pochodzić z bieżącej subskrypcji)
Remove-AzSqlInstanceActiveDirectory Administracja istrator Usuwa administratora usługi Microsoft Entra dla wystąpienia zarządzanego SQL w bieżącej subskrypcji.
Get-AzSqlInstanceActiveDirectory Administracja istrator Zwraca informacje o administratorze firmy Microsoft Entra dla wystąpienia zarządzanego SQL w bieżącej subskrypcji.

Następujące polecenie pobiera informacje o administratorze firmy Microsoft dla wystąpienia zarządzanego SQL o nazwie ManagedInstance01 skojarzonego z grupą zasobów o nazwie ResourceGroup01.

Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01"

Następujące polecenie aprowizuje grupę administratorów entra firmy Microsoft o nazwie DBAs dla wystąpienia zarządzanego SQL o nazwie ManagedInstance01. Ten serwer jest skojarzony z grupą zasobów ResourceGroup01.

Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01" -DisplayName "DBAs" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353b"

Następujące polecenie usuwa administratora usługi Microsoft Entra dla wystąpienia zarządzanego SQL o nazwie ManagedInstanceName01 skojarzonego z grupą zasobów ResourceGroup01.

Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstanceName01" -Confirm -PassThru

Aprowizuj administratora usługi Microsoft Entra (SQL Database)

Ważne

Wykonaj następujące kroki tylko wtedy, gdy aprowizujesz serwer dla usługi SQL Database lub Azure Synapse.

W poniższych dwóch procedurach pokazano, jak aprowizować administratora usługi Microsoft Entra dla serwera w witrynie Azure Portal i przy użyciu programu PowerShell.

Azure Portal

  1. W witrynie Azure Portal w prawym górnym rogu wybierz swoje konto, a następnie wybierz pozycję Przełącz katalog, aby otworzyć stronę Katalogi i subskrypcje. Wybierz katalog Microsoft Entra zawierający usługę Azure SQL Database lub Azure Synapse Analytics jako bieżący katalog.

  2. Wyszukaj pozycję Serwery SQL i wybierz serwer logiczny dla usługi Azure SQL Database.

    Search for and select SQL servers.

    Uwaga

    Na tej stronie przed wybraniem pozycji Serwery SQL można wybrać gwiazdkę obok nazwyulubionej kategorii i dodać serwery SQL do menu nawigacji po lewej stronie.

    Rozważ również wizytę na pulpicie nawigacyjnym usługi Azure SQL.

  3. Na stronie sql server wybierz pozycję Microsoft Entra ID.

  4. Na stronie Identyfikator entra firmy Microsoft wybierz pozycję Ustaw administratora, aby otworzyć okienko Identyfikator entra firmy Microsoft

    Screenshot shows the option to set the Microsoft Entra admin for SQL servers.

  5. W okienku Microsoft Entra ID wyszukaj użytkownika, a następnie wybierz użytkownika lub grupę, aby być administratorem. Użyj pozycji Wybierz, aby potwierdzić wybór i zamknąć okienko, aby powrócić do strony Microsoft Entra ID serwera logicznego. (Okienko Identyfikator entra firmy Microsoft zawiera wszystkie elementy członkowskie i grupy bieżącego katalogu. Nie można wybrać wyszarywanych użytkowników lub grup, ponieważ nie są one obsługiwane jako administratorzy firmy Microsoft Entra. Zobacz listę obsługiwanych administratorów w sekcji Funkcje i ograniczenia firmy Microsoft w temacie Używanie uwierzytelniania entra firmy Microsoft z usługą SQL Database lub Azure Synapse). Kontrola dostępu oparta na rolach (RBAC) platformy Azure ma zastosowanie tylko do portalu i nie jest propagowana do serwera.

  6. W górnej części strony Microsoft Entra ID dla serwera logicznego wybierz pozycję Zapisz.

    Screenshot shows the option to save a Microsoft Entra admin.

    Identyfikator obiektu jest wyświetlany obok nazwy administratora dla użytkowników i grup firmy Microsoft Entra. W przypadku aplikacji (jednostek usługi) zostanie wyświetlony identyfikator aplikacji.

Proces zmiany administratora może potrwać kilka minut. Następnie nowy administrator pojawi się w polu Administratora firmy Microsoft Entra.

Uwaga

Podczas konfigurowania administratora firmy Microsoft Entra nowa nazwa administratora (użytkownika lub grupy) nie może być jeszcze obecna w wirtualnej master bazie danych jako użytkownik uwierzytelniania serwera. Jeśli istnieje, instalacja administratora entra firmy Microsoft zakończy się niepowodzeniem i wycofa się, co oznacza, że taki administrator (nazwa) już istnieje. Ponieważ użytkownik uwierzytelniania serwera nie jest częścią identyfikatora Firmy Microsoft Entra, wszelkie wysiłki związane z nawiązaniem połączenia z serwerem przy użyciu uwierzytelniania firmy Microsoft Entra kończą się niepowodzeniem.

Aby później usunąć administratora, w górnej części strony Identyfikator entra firmy Microsoft wybierz pozycję Usuń administratora, a następnie wybierz pozycję Zapisz. Spowoduje to wyłączenie uwierzytelniania entra firmy Microsoft dla serwera logicznego.

Program PowerShell dla usług SQL Database i Azure Synapse

Aby uruchomić polecenia cmdlet programu PowerShell, musisz mieć zainstalowany i uruchomiony program Azure PowerShell. Aby uzyskać szczegółowe informacje, zobacz artykuł Instalowanie i konfigurowanie programu Azure PowerShell. Aby aprowizować administratora firmy Microsoft Entra, wykonaj następujące polecenia programu Azure PowerShell:

  • Connect-AzAccount
  • Select-AzSubscription

Polecenia cmdlet używane do aprowizowania administratora usługi Microsoft Entra dla usługi SQL Database i Azure Synapse oraz zarządzania nimi:

Nazwa polecenia cmdlet opis
Set-AzSqlServerActiveDirectoryAdministrator Aprowizuje administratora firmy Microsoft Entra dla serwera obsługującego usługę SQL Database lub Azure Synapse. (Musi pochodzić z bieżącej subskrypcji)
Remove-AzSqlServerActiveDirectory Administracja istrator Usuwa administratora usługi Microsoft Entra dla serwera hostowania usługi SQL Database lub Azure Synapse.
Get-AzSqlServerActiveDirectory Administracja istrator Zwraca informacje o administratorze firmy Microsoft Entra skonfigurowanym obecnie dla serwera hostowania usługi SQL Database lub Azure Synapse.

Użyj polecenia programu PowerShell, aby uzyskać pomoc, aby wyświetlić więcej informacji dla każdego z tych poleceń. Na przykład get-help Set-AzSqlServerActiveDirectoryAdministrator.

Poniższy skrypt aprowizuje grupę administratorów entra firmy Microsoft o nazwie DBA_Group (identyfikator 40b79501-b343-44ed-9ce7-da4c8cc7353fobiektu ) dla serwera demo_server w grupie zasobów o nazwie Group-23:

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" -DisplayName "DBA_Group"

Parametr wejściowy DisplayName akceptuje nazwę wyświetlaną identyfikatora entra firmy Microsoft lub główną nazwę użytkownika. Przykład: DisplayName="John Smith" i DisplayName="johns@contoso.com". W przypadku grup firmy Microsoft Entra obsługiwana jest tylko nazwa wyświetlana identyfikatora entra firmy Microsoft.

Uwaga

Polecenie Set-AzSqlServerActiveDirectoryAdministrator programu Azure PowerShell nie uniemożliwia aprowizacji administratorów firmy Microsoft Entra dla nieobsługiwanych użytkowników. Nieobsługiwany użytkownik można aprowizować, ale nie może nawiązać połączenia z bazą danych.

W poniższym przykładzie użyto opcjonalnego identyfikatora ObjectID:

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" `
    -DisplayName "DBA_Group" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353f"

Uwaga

Identyfikator ObjectID jest wymagany, gdy właściwość DisplayName nie jest unikatowa. Aby pobrać wartości ObjectID i DisplayName , możesz wyświetlić właściwości użytkownika lub grupy w sekcji Microsoft Entra ID w witrynie Azure Portal.

Poniższy przykład zwraca informacje dotyczące bieżącego administratora firmy Microsoft Entra dla serwera:

Get-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List

Poniższy przykład usuwa administratora firmy Microsoft Entra:

Remove-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"

Konfigurowanie komputerów klienckich

Uwaga

System.Data.SqlClient używa biblioteki Azure Active Directory Authentication Library (ADAL), która jest przestarzała. Jeśli używasz przestrzeni nazw System.Data.SqlClient na potrzeby uwierzytelniania entra firmy Microsoft, przeprowadź migrację aplikacji do biblioteki Microsoft.Data.SqlClient i biblioteki Microsoft Authentication Library (MSAL). Aby uzyskać więcej informacji, zobacz Using Microsoft Entra authentication with SqlClient (Korzystanie z uwierzytelniania entra firmy Microsoft w programie SqlClient).

Jeśli musisz nadal używać ADAL.DLL w aplikacjach, możesz użyć linków w tej sekcji, aby zainstalować najnowszy sterownik ODBC lub OLE DB, który zawiera najnowszą bibliotekę ADAL.DLL .

Na wszystkich komputerach klienckich, z których aplikacje lub użytkownicy łączą się z usługą SQL Database lub Azure Synapse przy użyciu tożsamości firmy Microsoft Entra, należy zainstalować następujące oprogramowanie:

Te wymagania można spełnić, wykonując następujące czynności:

  • Zainstalowanie najnowszej wersji programu SQL Server Management Studio lub sql Server Data Tools spełnia wymagania programu .NET Framework 4.6.
    • Program SSMS instaluje wersję x86 ADAL.DLL.
    • Program SSDT instaluje wersję ADAL.DLL amd64.
    • Najnowsza wersja programu Visual Studio from Visual Studio Downloads spełnia wymagania programu .NET Framework 4.6, ale nie instaluje wymaganej wersji ADAL.DLL amd64.

Tworzenie zawartych użytkowników mapowanych na tożsamości Microsoft Entra

W tej sekcji opisano wymagania i ważne zagadnienia dotyczące korzystania z uwierzytelniania usługi Microsoft Entra w usługach Azure SQL Database, Azure SQL Managed Instance i Azure Synapse.

  • Uwierzytelnianie entra firmy Microsoft z usługami SQL Database i Azure Synapse wymaga używania użytkowników zawartej bazy danych w oparciu o tożsamość firmy Microsoft Entra. Użytkownik zawartej bazy danych nie ma identyfikatora logowania w master bazie danych i mapuje na tożsamość w identyfikatorze Entra firmy Microsoft skojarzonym z bazą danych. Tożsamość firmy Microsoft Entra może być pojedynczym kontem użytkownika, grupą lub aplikacją. Aby uzyskać więcej informacji na temat użytkowników zawartej bazy danych, patrz Contained Database Users - Making Your Database Portable (Użytkownicy zawartych baz danych — tworzenie przenośnej bazy danych). Aby uzyskać więcej informacji na temat tworzenia zawartych użytkowników bazy danych na podstawie tożsamości firmy Microsoft, zobacz CREATE USER (Transact-SQL).

  • Ponieważ usługa SQL Managed Instance obsługuje jednostki serwera Entra firmy Microsoft (identyfikatory logowania), używanie zawartych użytkowników bazy danych nie jest wymagane. Dzięki temu można tworzyć identyfikatory logowania od użytkowników, grup lub aplikacji firmy Microsoft Entra. Oznacza to, że można uwierzytelnić się w usłudze SQL Managed Instance przy użyciu nazwy logowania serwera Entra firmy Microsoft, a nie użytkownika zawartej bazy danych. Aby uzyskać więcej informacji, zobacz Omówienie usługi SQL Managed Instance. Aby uzyskać informacje na temat tworzenia podmiotów zabezpieczeń serwera Microsoft Entra (identyfikatorów logowania), zobacz CREATE LOGIN (CREATE LOGIN).

  • Użytkownicy bazy danych (z wyjątkiem administratorów) nie mogą utworzyć bazy danych przy użyciu witryny Azure Portal. Role entra firmy Microsoft nie są propagowane do bazy danych w usłudze SQL Database, w usłudze SQL Managed Instance ani w usłudze Azure Synapse. Role firmy Microsoft Entra zarządzają zasobami platformy Azure i nie mają zastosowania do uprawnień bazy danych. Na przykład rola Współautor programu SQL Server nie udziela dostępu w celu nawiązania połączenia z bazą danych w usłudze SQL Database, wystąpieniu zarządzanym SQL lub usłudze Azure Synapse. Uprawnienie dostępu należy nadać bezpośrednio w bazie danych za pomocą instrukcji języka Transact-SQL.

  • Nie można bezpośrednio utworzyć użytkownika bazy danych dla tożsamości zarządzanej w innej dzierżawie firmy Microsoft Entra niż ta skojarzona z subskrypcją platformy Azure. Jednak użytkownicy w innych katalogach mogą być importowane do skojarzonego katalogu jako użytkownicy zewnętrzni. Następnie mogą służyć do tworzenia zawartych użytkowników bazy danych, którzy mogą uzyskiwać dostęp do usługi SQL Database. Użytkownicy zewnętrzni mogą również uzyskać dostęp za pośrednictwem członkostwa w grupach firmy Microsoft Entra, które zawierają użytkowników bazy danych.

  • Znaki specjalne, takie jak dwukropek : lub ampersand & , jeśli są uwzględniane jako nazwy użytkowników w języku T-SQL CREATE LOGIN i CREATE USER instrukcje nie są obsługiwane.

Ważne

Użytkownicy firmy Microsoft Entra i jednostki usługi (aplikacje firmy Microsoft Entra), którzy są członkami ponad 2048 grup zabezpieczeń Microsoft Entra, nie są obsługiwane do logowania się do bazy danych w usłudze SQL Database, SQL Managed Instance lub Azure Synapse.

Aby utworzyć użytkownika zawartej bazy danych firmy Microsoft entra (innego niż administrator serwera, który jest właścicielem bazy danych), połącz się z bazą danych przy użyciu tożsamości Microsoft Entra jako użytkownik z co najmniej uprawnieniem ALTER ANY USER . W poniższym przykładzie Microsoft_Entra_principal_name języka T-SQL może być główną nazwą użytkownika firmy Microsoft Entra lub nazwą wyświetlaną grupy Microsoft Entra.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Przykłady: aby utworzyć użytkownika zawartej bazy danych reprezentującego użytkownika domeny federacyjnej lub zarządzanej firmy Microsoft:

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;

Aby utworzyć użytkownika zawartej bazy danych reprezentującego grupę Firmy Microsoft Entra, podaj nazwę wyświetlaną grupy:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Aby utworzyć zawartego użytkownika bazy danych reprezentującego aplikację łączącą się przy użyciu tokenu Entra firmy Microsoft:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Polecenie CREATE USER ... FROM EXTERNAL PROVIDER wymaga dostępu SQL do identyfikatora Entra firmy Microsoft (dostawcy zewnętrznego) w imieniu zalogowanego użytkownika. Czasami pojawiają się okoliczności, które powodują, że identyfikator Entra firmy Microsoft zwraca wyjątek do języka SQL.

  • Może wystąpić błąd SQL 33134, który zawiera komunikat o błędzie specyficzny dla identyfikatora firmy Microsoft. Błąd zazwyczaj mówi, że odmowa dostępu, że użytkownik musi zarejestrować się w usłudze MFA, aby uzyskać dostęp do zasobu, lub że dostęp między aplikacjami pierwszej firmy musi być obsługiwany za pośrednictwem wstępnego uwierzytelniania. W pierwszych dwóch przypadkach problem jest zwykle spowodowany zasadami dostępu warunkowego ustawionymi w dzierżawie firmy Microsoft Entra użytkownika: uniemożliwiają użytkownikowi dostęp do dostawcy zewnętrznego. Aktualizowanie zasad dostępu warunkowego w celu zezwolenia na dostęp do aplikacji "00000003-0000-0000-c000-000000000000" (identyfikator aplikacji interfejsu API programu Microsoft Graph) powinno rozwiązać problem. Jeśli błąd wskazuje, że dostęp między aplikacjami pierwszej firmy musi być obsługiwany za pośrednictwem wstępnego uwierzytelniania, problem polega na tym, że użytkownik jest zalogowany jako jednostka usługi. Polecenie powinno zakończyć się powodzeniem, jeśli zostanie wykonane przez użytkownika.
  • Jeśli zostanie wyświetlony limit czasu Połączenie ion wygasł, może być konieczne ustawienie TransparentNetworkIPResolution parametru parametry połączenia na wartość false. Aby uzyskać więcej informacji, zobacz problem z limitem czasu Połączenie ion w programie .NET Framework 4.6.1 — TransparentNetworkIPResolution.

Ważne

Usunięcie administratora firmy Microsoft Entra dla serwera uniemożliwia każdemu użytkownikowi uwierzytelniania entra firmy Microsoft nawiązywanie połączenia z serwerem. W razie potrzeby administrator usługi SQL Database może ręcznie usunąć użytkowników usługi Microsoft Entra bezużytecznych.

Podczas tworzenia użytkownika bazy danych użytkownik otrzymuje uprawnienie CONNECT i może nawiązać połączenie z bazą danych jako członek roli PUBLIC . Początkowo jedyne uprawnienia dostępne dla użytkownika są przyznawane roli PUBLIC i dowolnym grupom firmy Microsoft Entra, w których są członkami. Udzielanie uprawnień użytkownikom zawartej bazy danych firmy Microsoft działa tak samo jak udzielanie uprawnień do dowolnego innego typu użytkownika. Zaleca się przyznawanie uprawnień do ról bazy danych i dodawanie użytkowników do tych ról, a nie bezpośrednie udzielanie uprawnień poszczególnym użytkownikom. Aby uzyskać więcej informacji, zobacz Podstawy uprawnień aparatu bazy danych. Aby uzyskać więcej informacji na temat specjalnych ról usługi SQL Database, zobacz Zarządzanie bazami danych i nazwami logowania w usłudze Azure SQL Database. Konto użytkownika domeny federacyjnej zaimportowane do domeny zarządzanej jako użytkownik zewnętrzny musi używać tożsamości domeny zarządzanej.

Użytkownicy firmy Microsoft Entra są oznaczani w metadanych bazy danych o typie E (EXTERNAL_USER) i dla grup o typie X (EXTERNAL_GROUPS). Aby uzyskać więcej informacji, zobacz sys.database_principals.

Połączenie do bazy danych przy użyciu programu SSMS lub SSDT

Aby upewnić się, że administrator firmy Microsoft Entra jest poprawnie skonfigurowany, połącz się z bazą master danych przy użyciu konta administratora firmy Microsoft Entra. Aby utworzyć użytkownika zawartej bazy danych firmy Microsoft, połącz się z bazą danych przy użyciu tożsamości firmy Microsoft Entra z dostępem do bazy danych i co najmniej uprawnieniem ALTER ANY USER .

Nawiązywanie połączenia przy użyciu programu SSMS lub SSDT przy użyciu tożsamości entra firmy Microsoft

Poniższe procedury pokazują, jak nawiązać połączenie z usługą SQL Database przy użyciu tożsamości firmy Microsoft Entra przy użyciu programu SQL Server Management Studio (SSMS) lub narzędzi SQL Server Database Tools (SSDT).

Microsoft Entra ID — zintegrowany

Użyj tej metody, jeśli logujesz się do systemu Windows przy użyciu poświadczeń usługi Microsoft Entra z domeny federacyjnej lub domeny zarządzanej skonfigurowanej do bezproblemowego logowania jednokrotnego na potrzeby uwierzytelniania przekazywanego i skrótu haseł. Aby uzyskać więcej informacji, zobacz bezproblemowe logowanie jednokrotne usługi Microsoft Entra.

  1. Uruchom program SSMS lub SSDT i w oknie dialogowym Połączenie na serwer (lub Połączenie do aparatu bazy danych) w polu Uwierzytelnianie wybierz pozycję Azure Active Directory — zintegrowana. Nie trzeba wprowadzać hasła, ponieważ istniejące poświadczenia są prezentowane dla połączenia.

    Screenshot from SSMS showing Microsoft Entra Integrated authentication.

  2. Wybierz przycisk Opcje, a na stronie Właściwości Połączenie ion w polu Połączenie do bazy danych wpisz nazwę bazy danych użytkownika, z którą chcesz nawiązać połączenie.

    Screenshot from SSMS of the Options menu.

Microsoft Entra ID — hasło

Użyj tej metody podczas nawiązywania połączenia z główną nazwą firmy Microsoft Entra przy użyciu domeny zarządzanej firmy Microsoft Entra. Można go również używać dla kont federacyjnych bez dostępu do domeny, na przykład podczas pracy zdalnej.

Ta metoda służy do uwierzytelniania w bazie danych w usłudze SQL Database lub w wystąpieniu zarządzanym SQL przy użyciu użytkowników tożsamości tylko w chmurze firmy Microsoft lub tych, którzy korzystają z tożsamości hybrydowych firmy Microsoft Entra. Ta metoda obsługuje użytkowników, którzy chcą używać poświadczeń systemu Windows, ale ich komputer lokalny nie jest przyłączony do domeny (na przykład przy użyciu dostępu zdalnego). W takim przypadku użytkownik systemu Windows może wskazać swoje konto domeny i hasło oraz uwierzytelnić się w bazie danych w usłudze SQL Database, wystąpieniu zarządzanym SQL lub usłudze Azure Synapse.

  1. Uruchom program SSMS lub SSDT i w oknie dialogowym Połączenie na serwer (lub Połączenie do aparatu bazy danych) w polu Uwierzytelnianie wybierz pozycję Azure Active Directory — hasło.

  2. W polu Nazwa użytkownika wpisz nazwę użytkownika Entra firmy Microsoft w formacie username\@domain.com. Nazwy użytkowników muszą być kontem z identyfikatora Entra firmy Microsoft lub konta z domeny zarządzanej lub federacyjnej z identyfikatorem Entra firmy Microsoft.

  3. W polu Hasło wpisz hasło użytkownika dla konta Microsoft Entra lub zarządzanego/federacyjnego konta domeny.

    Screenshot from SSMS using Microsoft Entra Password authentication.

  4. Wybierz przycisk Opcje, a na stronie Właściwości Połączenie ion w polu Połączenie do bazy danych wpisz nazwę bazy danych użytkownika, z którą chcesz nawiązać połączenie. (Zobacz grafikę w poprzedniej opcji).

Microsoft Entra ID — universal with MFA (Identyfikator entra firmy Microsoft — uniwersalny z usługą MFA)

Użyj tej metody do uwierzytelniania interakcyjnego z uwierzytelnianiem wieloskładnikowym (MFA) z żądaniem hasła interakcyjnego. Ta metoda może służyć do uwierzytelniania w bazach danych w usługach SQL Database, SQL Managed Instance i Azure Synapse dla użytkowników tożsamości tylko w chmurze firmy Microsoft lub tych, którzy korzystają z tożsamości hybrydowych firmy Microsoft Entra.

Aby uzyskać więcej informacji, zobacz Using multi-factor Microsoft Entra authentication with SQL Database and Azure Synapse (SSMS support for MFA) (Using multi-factor Microsoft Entra authentication with SQL Database and Azure Synapse (SSMS support for MFA) (Using multi-factor Microsoft Entra authentication with SQL Database and Azure Synapse (SSMS support for MFA) (Korzystanie z uwierzytelniania wieloskładnikowego firmy Microsoft

Microsoft Entra ID — jednostka usługi

Ta metoda służy do uwierzytelniania w bazie danych w usłudze SQL Database lub w wystąpieniu zarządzanym SQL za pomocą jednostek usługi Microsoft Entra (aplikacje firmy Microsoft Entra). Aby uzyskać więcej informacji, zobacz Microsoft Entra service principal with Azure SQL (Jednostka usługi Microsoft Entra w usłudze Azure SQL).

Microsoft Entra ID — tożsamość zarządzana

Ta metoda służy do uwierzytelniania w bazie danych w usłudze SQL Database lub w wystąpieniu zarządzanym SQL za pomocą tożsamości zarządzanych firmy Microsoft Entra. Aby uzyskać więcej informacji, zobacz Tożsamości zarządzane w usłudze Microsoft Entra for Azure SQL.

Microsoft Entra ID — ustawienie domyślne

Opcja uwierzytelniania domyślnego z identyfikatorem Entra firmy Microsoft umożliwia uwierzytelnianie wykonywane za pomocą mechanizmów bez hasła i nieinterakcyjnych, w tym tożsamości zarządzanych.

Nawiązywanie połączenia przy użyciu edytora zapytań witryny Azure Portal dla usługi Azure SQL Database przy użyciu tożsamości Entra firmy Microsoft

Aby uzyskać więcej informacji na temat edytora zapytań witryny Azure Portal dla usługi Azure SQL Database, zobacz Szybki start: Używanie edytora zapytań witryny Azure Portal do wykonywania zapytań w usłudze Azure SQL Database.

  1. Przejdź do bazy danych SQL w witrynie Azure Portal. Na przykład odwiedź pulpit nawigacyjny usługi Azure SQL.

  2. Na stronie Przegląd bazy danych SQL w witrynie Azure Portal wybierz pozycję Edytor zapytań z menu po lewej stronie.

  3. Na ekranie logowania w obszarze Witamy w usłudze SQL Database Edytor Power Query wybierz pozycję Kontynuuj jako <identyfikator> użytkownika lub grupy.

    Screenshot showing sign-in to the Azure portal Query editor with Microsoft Entra authentication.

Nawiązywanie połączenia z aplikacji klienckiej przy użyciu tożsamości Entra firmy Microsoft

Poniższe procedury pokazują, jak nawiązać połączenie z usługą SQL Database przy użyciu tożsamości firmy Microsoft Entra z aplikacji klienckiej. Nie jest to kompleksowa lista metod uwierzytelniania w przypadku korzystania z tożsamości firmy Microsoft Entra. Aby uzyskać więcej informacji, zobacz Połączenie do usługi Azure SQL przy użyciu uwierzytelniania microsoft Entra i programu SqlClient.

Zintegrowane uwierzytelnianie firmy Microsoft

Aby korzystać ze zintegrowanego uwierzytelniania systemu Windows, usługa Active Directory domeny musi być sfederowana z identyfikatorem Entra firmy Microsoft lub powinna być domeną zarządzaną skonfigurowaną do bezproblemowego logowania jednokrotnego na potrzeby uwierzytelniania przekazywanego lub skrótu hasła. Aby uzyskać więcej informacji, zobacz bezproblemowe logowanie jednokrotne usługi Microsoft Entra.

Aplikacja kliencka (lub usługa) łącząca się z bazą danych musi być uruchomiona na komputerze przyłączonym do domeny w ramach poświadczeń domeny użytkownika.

Aby nawiązać połączenie z bazą danych przy użyciu zintegrowanego uwierzytelniania i tożsamości firmy Microsoft Entra, słowo kluczowe Authentication w bazie danych parametry połączenia musi być ustawione na Active Directory Integrated. Zastąp <database_name> ciąg nazwą bazy danych. Poniższy przykład kodu w języku C# używa platformy .NET ADO.

string ConnectionString = @"Data Source=<database_name>.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Słowo kluczowe Integrated Security=True parametry połączenia nie jest obsługiwane w przypadku nawiązywania połączenia z usługą Azure SQL Database. Podczas nawiązywania połączenia ODBC należy usunąć spacje i ustawić uwierzytelnianie na ActiveDirectoryIntegrated.

Microsoft Entra password authentication (Uwierzytelnianie haseł firmy Microsoft w usłudze Entra)

Aby nawiązać połączenie z bazą danych przy użyciu kont użytkowników tożsamości tylko w chmurze firmy Microsoft lub tych, którzy korzystają z tożsamości hybrydowych firmy Microsoft Entra, słowo kluczowe Authentication musi być ustawione na Active Directory Password. Parametry połączenia musi zawierać wartości i słowa kluczowe i wartości identyfikatora użytkownika/identyfikatora użytkownika/hasła/pwD. Zastąp <database_name>wartości , <email_address>i <password> odpowiednimi wartościami. Poniższy przykład kodu w języku C# używa platformy .NET ADO.

string ConnectionString =
@"Data Source=<database_name>.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb; UID=<email_address>; PWD=<password>";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Dowiedz się więcej o metodach uwierzytelniania entra firmy Microsoft przy użyciu przykładów kodu demonstracyjnego dostępnych w witrynie Microsoft Entra authentication GitHub Demo.

Token dostępu identyfikatora Entra firmy Microsoft

Ta metoda uwierzytelniania umożliwia usługom warstwy środkowej uzyskiwanie tokenów sieci Web JSON (JWT) w celu nawiązania połączenia z bazą danych w usłudze SQL Database, wystąpieniem zarządzanym SQL lub usługą Azure Synapse przez uzyskanie tokenu z identyfikatora Entra firmy Microsoft. Ta metoda umożliwia korzystanie z różnych scenariuszy aplikacji, w tym tożsamości usług, jednostek usługi i aplikacji przy użyciu uwierzytelniania opartego na certyfikatach. Aby użyć uwierzytelniania tokenu firmy Microsoft Entra, należy wykonać cztery podstawowe kroki:

  1. Zarejestruj aplikację przy użyciu identyfikatora Entra firmy Microsoft i pobierz identyfikator klienta dla kodu.
  2. Utwórz użytkownika bazy danych reprezentującego aplikację. (Ukończono wcześniej w sekcji Utwórz zawartych użytkowników mapowanych na tożsamości firmy Microsoft.
  3. Utwórz certyfikat na komputerze klienckim z uruchomioną aplikacją.
  4. Dodaj certyfikat jako klucz dla aplikacji.

Przykładowe parametry połączenia. Zastąp <database_name> ciąg nazwą bazy danych:

string ConnectionString = @"Data Source=<database_name>.database.windows.net; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.AccessToken = "Your JWT token";
conn.Open();

Aby uzyskać więcej informacji, zobacz Blog dotyczący zabezpieczeń programu SQL Server. Aby uzyskać informacje na temat dodawania certyfikatu, zobacz Wprowadzenie do uwierzytelniania opartego na certyfikatach w identyfikatorze Entra firmy Microsoft.

sqlcmd

Poniższe instrukcje łączą się przy użyciu wersji 13.1 narzędzia sqlcmd. Pobierz narzędzia wiersza polecenia firmy Microsoft 14.0 dla programu SQL Server.

Uwaga

sqlcmd polecenie -G nie działa z tożsamościami systemowymi i wymaga nazwy logowania podmiotu zabezpieczeń użytkownika.

sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -G
sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -U bob@contoso.com -P MyAADPassword -G -l 30

Rozwiązywanie problemów z uwierzytelnianiem w usłudze Microsoft Entra

Aby uzyskać wskazówki dotyczące rozwiązywania problemów z uwierzytelnianiem w usłudze Microsoft Entra, zobacz Blog: Rozwiązywanie problemów związanych z uwierzytelnianiem usługi Azure AD za pomocą usługi Azure SQL DB i DW.