Konfigurace a správa ověřování Microsoft Entra pomocí Azure SQL

Platí pro:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

V tomto článku se dozvíte, jak vytvořit a naplnit tenanta Microsoft Entra a používat Microsoft Entra ID (dříve Azure Active Directory) se službou Azure SQL Database, azure SQL Managed Instance a Azure Synapse Analytics. Přehled najdete v tématu Ověřování Microsoft Entra.

Poznámka:

ID Microsoft Entra se dříve označovalo jako Azure Active Directory (Azure AD).

Metody ověřování Microsoft Entra

Microsoft Entra ID podporuje následující metody ověřování:

  • Microsoft Entra – výhradně cloudové identity
  • Hybridní identity Microsoft Entra, které podporují:
    • Cloudové ověřování se dvěma možnostmi ve spojení s bezproblémovým jednotným přihlašováním
      • Ověřování hodnot hash hesel Microsoft Entra
      • Předávací ověřování Microsoft Entra
    • Federované ověřování

Další informace o metodách ověřování Microsoft Entra a o tom, které z nich zvolit, naleznete v tématu Volba správné metody ověřování pro vaše řešení hybridní identity Microsoft Entra.

Další informace o hybridních identitách, nastavení a synchronizaci microsoft Entra najdete v tématu:

Vytvoření a naplnění tenanta Microsoft Entra

Vytvořte tenanta Microsoft Entra a naplňte ho uživateli a skupinami. Tenanty Microsoft Entra je možné spravovat zcela v rámci Azure nebo použít k federaci služby místní Active Directory Domain Service.

Další informace naleznete v tématu:

Přidružení nebo přidání předplatného Azure do ID Microsoft Entra

  1. Přidružte své předplatné Azure k Microsoft Entra ID tak, že adresář přiřadíte důvěryhodnému adresáři pro předplatné Azure hostující databázi. Podrobnosti najdete v tématu Přidružení nebo přidání předplatného Azure do tenanta Microsoft Entra.

  2. Pomocí přepínače adresáře na webu Azure Portal přejděte na předplatné přidružené k doméně.

    Důležité

    Každé předplatné Azure má vztah důvěryhodnosti s instancí Microsoft Entra. Tento adresář důvěřuje ověřování uživatelů, služeb a zařízení. Několik předplatných může důvěřovat stejnému adresáři, ale jedno předplatné důvěřuje pouze jednomu adresáři. Tento vztah důvěryhodnosti, který má předplatné s adresářem, je na rozdíl od předplatného se všemi ostatními prostředky v Azure (weby, databáze atd.), které se podobají podřízeným prostředkům předplatného. Pokud platnost předplatného vyprší, zastaví se i přístup k těmto dalším prostředkům přidruženým k předplatnému. Adresář ale zůstane v Azure a můžete k němu přidružit jiné předplatné a dál spravovat uživatele adresáře. Další informace o prostředcích najdete v tématu Principy přístupu k prostředkům v Azure. Další informace o této důvěryhodné relaci najdete v tématu Přidružení nebo přidání předplatného Azure do ID Microsoft Entra.

Správce Microsoft Entra se serverem ve službě SQL Database

Každý logický server v Azure (který hostuje SLUŽBU SQL Database nebo Azure Synapse) začíná jedním účtem správce serveru, který je správcem celého serveru. Vytvořte druhý účet správce jako účet Microsoft Entra. Tento objekt zabezpečení se vytvoří jako uživatel databáze s omezením v master databázi serveru. Správa istratorové účty jsou členy db_owner role v každé uživatelské databázi a každá uživatelská databáze se zadává jako uživatel dbo. Další informace o účtech správce najdete v tématu Správa databází a přihlášení.

Správce Microsoft Entra musí být nakonfigurovaný pro primární i sekundární servery při použití ID Microsoft Entra s geografickou replikací. Pokud server nemá správce Microsoft Entra, microsoft Entra se přihlásí a uživatelům se zobrazí Cannot connect chyba serveru.

Poznámka:

Uživatelé, kteří nejsou založeni na účtu Microsoft Entra (včetně účtu správce serveru), nemůžou vytvářet uživatele založené na Microsoft Entra, protože nemají oprávnění k ověření navrhovaných uživatelů databáze pomocí Microsoft Entra ID.

Zřízení správce Microsoft Entra (SQL Managed Instance)

Důležité

Pokud zřizujete spravovanou instanci Azure SQL, postupujte podle těchto kroků. Tuto operaci může spustit pouze globální Správa istrator nebo privilegovaná role Správa istrator v Microsoft Entra ID.

Roli Čtenáře adresáře můžete přiřadit skupině v ID Microsoft Entra. Vlastníci skupiny pak můžou přidat identitu spravované instance jako člena této skupiny, což umožňuje zřídit správce Microsoft Entra pro spravovanou instanci SQL. Další informace o této funkci naleznete v tématu Role Čtenář adresáře v Microsoft Entra pro Azure SQL.

Vaše spravovaná instance SQL potřebuje oprávnění ke čtení ID Microsoft Entra, aby bylo možné provádět úlohy, jako je ověřování uživatelů prostřednictvím členství ve skupině zabezpečení nebo vytváření nových uživatelů. Aby to fungovalo, musíte službě SQL Managed Instance udělit oprávnění ke čtení ID Microsoft Entra. Můžete to provést pomocí webu Azure Portal nebo PowerShellu.

portál Azure

Pokud chcete službě SQL Managed Instance udělit oprávnění ke čtení pro ID Microsoft Entra pomocí webu Azure Portal, přihlaste se jako globální Správa istrator a postupujte takto:

  1. Na webu Azure Portal v pravém horním rohu vyberte svůj účet a potom zvolte Přepnout adresáře a potvrďte, který adresář je vaším aktuálním adresářem. V případě potřeby přepněte adresáře.

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

  2. Zvolte správný adresář Microsoft Entra jako aktuální adresář.

    Tento krok propojil předplatné přidružené k ID Microsoft Entra ke službě SQL Managed Instance a zajistil tak, že tenant Microsoft Entra a spravovaná instance SQL používají stejné předplatné.

  3. Teď můžete pro spravovanou instanci SQL zvolit svého správce Microsoft Entra. V takovém případě přejděte na webu Azure Portal k prostředku spravované instance a v části Nastavení vyberte správce Microsoft Entra.

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

  4. Vyberte banner v horní části stránky správce Microsoft Entra a udělte oprávnění aktuálnímu uživateli.

    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 úspěšném provedení operace se v pravém horním rohu zobrazí následující oznámení:

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

  6. Na stránce pro správu Microsoft Entra vyberte Nastavit správce z navigačního panelu a otevřete podokno Microsoft Entra ID.

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

  7. V podokně Microsoft Entra ID vyhledejte uživatele, zaškrtněte políčko vedle uživatele nebo skupiny, který má být správcem, a stisknutím klávesy Vybrat zavřete podokno a vraťte se na stránku správce Microsoft Entra pro vaši spravovanou instanci.

    Podokno ID Microsoft Entra zobrazuje všechny členy a skupiny v aktuálním adresáři. Uživatele nebo skupiny se šedě nedají vybrat, protože nejsou podporované jako správci Microsoft Entra. Podívejte se na seznam podporovaných správců v funkcích a omezeních Microsoft Entra. Řízení přístupu na základě role v Azure (Azure RBAC) se vztahuje pouze na azure Portal a není rozšířeno do služby SQL Database, SQL Managed Instance nebo Azure Synapse.

  8. Na navigačním panelu stránky správce Microsoft Entra pro vaši spravovanou instanci vyberte Uložit a potvrďte správce 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 změny správce může trvat několik minut. Nový správce se pak zobrazí v poli správce Microsoft Entra.

    ID objektu se zobrazí vedle názvu správce pro uživatele a skupiny Microsoft Entra. Pro aplikace (instanční objekty) se zobrazí ID aplikace.

Po zřízení správce Microsoft Entra pro vaši službu SQL Managed Instance můžete začít vytvářet objekty zabezpečení serveru Microsoft Entra (přihlášení) pomocí syntaxe CREATE LOGIN . Další informace najdete v přehledu služby SQL Managed Instance.

Tip

Pokud chcete později odebrat Správa, vyberte v horní části stránky správce Microsoft Entra možnost Odebrat správce a pak vyberte Uložit.

PowerShell

Pokud chcete pomocí PowerShellu udělit službě SQL Managed Instance oprávnění ke čtení pro ID Microsoft Entra, spusťte tento skript:

# 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."
}

PowerShell pro spravovanou instanci SQL

Pokud chcete spouštět rutiny PowerShellu, musíte mít nainstalovaný a spuštěný Azure PowerShell. Podrobné informace najdete v tématu Instalace a konfigurace Azure PowerShellu.

Důležité

Spravovaná instance Azure SQL stále podporuje modul Azure Resource Manager (RM) PowerShellu, ale veškerý budoucí vývoj je určený pro modul Az.Sql. Modul AzureRM obdrží opravy chyb do aspoň prosince 2020. Argumenty pro příkazy v modulu Az a v modulech AzureRm jsou podstatně identické. Další informace o jejich kompatibilitě najdete v tématu Představení nového modulu Az Azure PowerShellu.

Pokud chcete zřídit správce Microsoft Entra, spusťte následující příkazy Azure PowerShellu:

  • Connect-AzAccount
  • Select-AzSubscription

Rutiny používané ke zřízení a správě správce Microsoft Entra pro vaši službu SQL Managed Instance jsou uvedené v následující tabulce:

Název rutiny Popis
Set-AzSqlInstanceActiveDirectory Správa istrator Zřídí správce Microsoft Entra pro spravovanou instanci SQL v aktuálním předplatném. (Musí být z aktuálního předplatného)
Remove-AzSqlInstanceActiveDirectory Správa istrator Odebere správce Microsoft Entra pro spravovanou instanci SQL v aktuálním předplatném.
Get-AzSqlInstanceActiveDirectory Správa istrator Vrátí informace o správci Microsoft Entra pro spravovanou instanci SQL v aktuálním předplatném.

Následující příkaz získá informace o správci Microsoft Entra pro spravovanou instanci SQL s názvem ManagedInstance01 přidružené ke skupině prostředků s názvem ResourceGroup01.

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

Následující příkaz zřídí skupinu správců Microsoft Entra s názvem DBA pro spravovanou instanci SQL s názvem ManagedInstance01. Tento server je přidružený ke skupině prostředků ResourceGroup01.

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

Následující příkaz odebere správce Microsoft Entra pro spravovanou instanci SQL s názvem ManagedInstanceName01 přidruženou ke skupině prostředků ResourceGroup01.

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

Zřízení správce Microsoft Entra (SQL Database)

Důležité

Pokud zřizujete server pro SQL Database nebo Azure Synapse, postupujte podle těchto kroků.

Následující dva postupy ukazují, jak zřídit správce Microsoft Entra pro váš server na webu Azure Portal a pomocí PowerShellu.

portál Azure

  1. Na webu Azure Portal v pravém horním rohu vyberte svůj účet a pak zvolte Přepnout adresář , aby se otevřela stránka Adresáře a předplatná . Zvolte adresář Microsoft Entra, který obsahuje službu Azure SQL Database nebo Azure Synapse Analytics jako aktuální adresář.

  2. Vyhledejte sql servery a vyberte logický server pro službu Azure SQL Database.

    Search for and select SQL servers.

    Poznámka:

    Na této stránce můžete před výběrem SQL serverů vybrat hvězdičku vedle názvu a přidat servery SQL do levé navigační nabídky.

    Zvažte také návštěvu řídicího panelu Azure SQL.

  3. Na stránce SQL Serveru vyberte Microsoft Entra ID.

  4. Na stránce ID Microsoft Entra vyberte Nastavit správce a otevřete podokno Microsoft Entra ID.

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

  5. V podokně Microsoft Entra ID vyhledejte uživatele a pak vyberte uživatele nebo skupinu, které chcete být správcem. Pomocí příkazu Select potvrďte svoji volbu a zavřete podokno, abyste se vrátili na stránku Microsoft Entra ID vašeho logického serveru. (Podokno Microsoft Entra ID zobrazuje všechny členy a skupiny vašeho aktuálního adresáře. Uživatele nebo skupiny se šedě nedají vybrat, protože nejsou podporované jako správci Microsoft Entra. Seznam podporovaných správců najdete v části Věnované funkcím a omezením v části Používání ověřování Microsoft Entra ve službě SQL Database nebo Azure Synapse.) Řízení přístupu na základě role v Azure (Azure RBAC) se vztahuje pouze na portál a není rozšířeno na server.

  6. V horní části stránky Microsoft Entra ID vašeho logického serveru vyberte Uložit.

    Screenshot shows the option to save a Microsoft Entra admin.

    ID objektu se zobrazí vedle názvu správce pro uživatele a skupiny Microsoft Entra. Pro aplikace (instanční objekty) se zobrazí ID aplikace.

Proces změny správce může trvat několik minut. Nový správce se pak zobrazí v poli správce Microsoft Entra.

Poznámka:

Při nastavování správce Microsoft Entra už ve virtuální master databázi nemůže být nové jméno správce (uživatel nebo skupina) k dispozici jako uživatel ověřování serveru. Pokud je k dispozici, nastavení správce Microsoft Entra se nezdaří a vrátí se zpět, což znamená, že takový správce (jméno) již existuje. Vzhledem k tomu, že uživatel ověřování serveru není součástí ID Microsoft Entra, veškeré úsilí o připojení k serveru pomocí ověřování Microsoft Entra selže.

Pokud chcete správce později odebrat, vyberte v horní části stránky Microsoft Entra ID možnost Odebrat správce a pak vyberte Uložit. Tím se zakáže ověřování Microsoft Entra pro váš logický server.

PowerShell pro SQL Database a Azure Synapse

Pokud chcete spouštět rutiny PowerShellu, musíte mít nainstalovaný a spuštěný Azure PowerShell. Podrobné informace najdete v tématu Instalace a konfigurace Azure PowerShellu. Pokud chcete zřídit správce Microsoft Entra, spusťte následující příkazy Azure PowerShellu:

  • Connect-AzAccount
  • Select-AzSubscription

Rutiny používané ke zřízení a správě správce Microsoft Entra pro SLUŽBU SQL Database a Azure Synapse:

Název rutiny Popis
Set-AzSqlServerActiveDirectoryAdministrator Zřídí správce Microsoft Entra pro server hostující službu SQL Database nebo Azure Synapse. (Musí být z aktuálního předplatného)
Remove-AzSqlServerActiveDirectory Správa istrator Odebere správce Microsoft Entra pro server hostující službu SQL Database nebo Azure Synapse.
Get-AzSqlServerActiveDirectory Správa istrator Vrátí informace o správci Microsoft Entra, který je aktuálně nakonfigurovaný pro server hostující službu SQL Database nebo Azure Synapse.

Další informace o každém z těchto příkazů zobrazíte pomocí příkazu PowerShellu get-help. Například get-help Set-AzSqlServerActiveDirectoryAdministrator.

Následující skript zřídí skupinu správce Microsoft Entra s názvem DBA_Group (ID 40b79501-b343-44ed-9ce7-da4c8cc7353fobjektu) pro demo_server server ve skupině prostředků s názvem Group-23:

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

Vstupní parametr DisplayName přijímá buď zobrazovaný název ID Microsoft Entra, nebo hlavní název uživatele. Příklad: DisplayName="John Smith" a DisplayName="johns@contoso.com". U skupin Microsoft Entra se podporuje pouze zobrazovaný název ID Microsoft Entra.

Poznámka:

Příkaz Set-AzSqlServerActiveDirectoryAdministrator Azure PowerShellu vám nebrání ve zřizování správců Microsoft Entra pro nepodporované uživatele. Nepodporovaný uživatel se dá zřídit, ale nemůže se připojit k databázi.

Následující příklad používá volitelné Id objektu:

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

Poznámka:

Id objektuje vyžadováno v případě, že displayName není jedinečný. Pokud chcete načíst hodnoty ObjectID a DisplayName , můžete zobrazit vlastnosti uživatele nebo skupiny v části Id Microsoft Entra na webu Azure Portal.

Následující příklad vrátí informace o aktuálním správci Microsoft Entra pro server:

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

Následující příklad odebere správce Microsoft Entra:

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

Poznámka:

Microsoft Entra Správa istrator můžete zřídit také pomocí rozhraní REST API. Další informace najdete v tématu Referenční informace k rozhraní REST API pro správu služeb a operace pro operace služby Azure SQL Database pro Azure SQL Database.

Konfigurace klientských počítačů

Poznámka:

System.Data.SqlClient používá knihovnu Azure Active Directory Authentication Library (ADAL), která je zastaralá. Pokud pro ověřování Microsoft Entra používáte obor názvů System.Data.SqlClient, migrujte aplikace do Microsoft.Data.SqlClient a knihovny Microsoft Authentication Library (MSAL). Další informace naleznete v tématu Použití ověřování Microsoft Entra s SqlClient.

Pokud musíte v aplikacích dál používat ADAL.DLL , můžete pomocí odkazů v této části nainstalovat nejnovější ovladač ODBC nebo OLE DB, který obsahuje nejnovější knihovnu ADAL.DLL .

Na všech klientských počítačích, ze kterých se vaše aplikace nebo uživatelé připojují ke službě SQL Database nebo Azure Synapse pomocí identit Microsoft Entra, musíte nainstalovat následující software:

Tyto požadavky můžete splnit takto:

Vytvoření uživatelů s omezením namapovaných na identity Microsoft Entra

Tato část popisuje požadavky a důležité aspekty použití ověřování Microsoft Entra se službou Azure SQL Database, Azure SQL Managed Instance a Azure Synapse.

  • Ověřování Microsoft Entra ve službě SQL Database a Azure Synapse vyžaduje použití uživatelů databáze s omezením na základě identity Microsoft Entra. Uživatel databáze s omezením nemá v master databázi přihlášení a mapuje se na identitu v ID Microsoft Entra přidružené k databázi. Identita Microsoft Entra může být individuální uživatelský účet, skupina nebo aplikace. Další informace o uživatelích databáze s omezením naleznete v tématu Uživatelé databáze s omezením - Vytvoření přenosné databáze. Další informace o vytváření uživatelů databáze s omezením na základě identit Microsoft Entra naleznete v tématu CREATE USER (Transact-SQL).

  • Vzhledem k tomu, že sql Managed Instance podporuje instanční objekty (přihlášení) Microsoft Entra, není vyžadováno použití uživatelů databáze s omezením. Díky tomu můžete vytvářet přihlášení od uživatelů, skupin nebo aplikací Microsoft Entra. To znamená, že se můžete ověřit ve službě SQL Managed Instance pomocí přihlášení k serveru Microsoft Entra místo uživatele databáze s omezením. Další informace najdete v přehledu služby SQL Managed Instance. Syntaxi vytváření objektů zabezpečení serveru Microsoft Entra (přihlášení) najdete v tématu CREATE LOGIN.

  • Uživatelé databáze (s výjimkou správců) nemůžou vytvořit databázi pomocí webu Azure Portal. Role Microsoft Entra nejsou šířené do databáze ve službě SQL Database, SQL Managed Instance nebo Azure Synapse. Role Microsoft Entra spravují prostředky Azure a nevztahují se na oprávnění databáze. Role Přispěvatel SQL Serveru například neuděluje přístup pro připojení k databázi ve službě SQL Database, SQL Managed Instance nebo Azure Synapse. Přístupové oprávnění musí být uděleno přímo v databázi pomocí příkazů Jazyka Transact-SQL.

  • Nemůžete přímo vytvořit uživatele databáze pro identitu spravovanou v jiném tenantovi Microsoft Entra, než je uživatel přidružený k vašemu předplatnému Azure. Uživatelé v jiných adresářích se ale dají importovat do přidruženého adresáře jako externí uživatelé. Pak je můžete použít k vytvoření uživatelů databáze s omezením, kteří mají přístup ke službě SQL Database. Externí uživatelé mohou také získat přístup prostřednictvím členství ve skupinách Microsoft Entra, které obsahují uživatele databáze.

  • Speciální znaky, jako je dvojtečka : nebo ampersand & , pokud jsou zahrnuté jako uživatelská jména v T-SQL CREATE LOGIN a CREATE USER příkazy, nejsou podporovány.

Důležité

Uživatelé a instanční objekty Microsoft Entra (aplikace Microsoft Entra), které jsou členy více než 2048 skupin zabezpečení Microsoft Entra, nejsou podporovány pro přihlášení k databázi ve službě SQL Database, SQL Managed Instance nebo Azure Synapse.

Pokud chcete vytvořit uživatele databáze založené na MICROSOFT Entra ID (kromě správce serveru, který databázi vlastní), připojte se k databázi pomocí identity Microsoft Entra jako uživatel s alespoň oprávněním ALTER ANY USER . V následujícím příkladu Microsoft_Entra_principal_name T-SQL může být hlavní název uživatele Microsoft Entra nebo zobrazovaný název skupiny Microsoft Entra.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Příklady: Vytvoření uživatele databáze s omezením představujícího uživatele federované nebo spravované domény Microsoftu:

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

Pokud chcete vytvořit uživatele databáze s omezením představující skupinu Microsoft Entra, zadejte zobrazovaný název skupiny:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Vytvoření uživatele databáze s omezením představujícího aplikaci, která se připojuje pomocí tokenu Microsoft Entra:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Příkaz CREATE USER ... FROM EXTERNAL PROVIDER vyžaduje přístup SQL k Microsoft Entra ID ("externímu poskytovateli") jménem přihlášeného uživatele. Někdy vznikají okolnosti, které způsobují, že ID Microsoft Entra vrátí výjimku sql.

  • Může dojít k chybě SQL 33134, která obsahuje chybovou zprávu specifickou pro Microsoft Entra. Tato chyba obvykle říká, že přístup byl odepřen, že se uživatel musí zaregistrovat do vícefaktorového ověřování pro přístup k prostředku nebo že přístup mezi aplikacemi první strany musí být zpracován prostřednictvím předběžného ověření. V prvních dvou případech je problém obvykle způsoben zásadami podmíněného přístupu, které jsou nastavené v tenantovi Microsoft Entra uživatele: brání uživateli v přístupu k externímu poskytovateli. Problém by měl vyřešit aktualizace zásad podmíněného přístupu tak, aby umožňovala přístup k aplikaci 00000003-0000-0000-c000-000000000000 (ID aplikace rozhraní Microsoft Graph API). Pokud chyba říká, že přístup mezi aplikacemi první strany musí být zpracován prostřednictvím předběžného ověření, příčinou problému je to, že uživatel je přihlášený jako instanční objekt. Příkaz by měl být úspěšný, pokud ho uživatel spustí.
  • Pokud se zobrazí vypršení časového limitu Připojení, možná budete muset nastavit TransparentNetworkIPResolution parametr připojovací řetězec na false. Další informace najdete v tématu Připojení problém s vypršením časového limitu pro rozhraní .NET Framework 4.6.1 – TransparentNetworkIPResolution.

Důležité

Odebráním správce Microsoft Entra pro server zabráníte všem uživatelům ověřování Microsoft Entra, aby se připojil k serveru. V případě potřeby může správce služby SQL Database ručně odstranit nepoužitelné uživatele Microsoft Entra.

Když vytvoříte uživatele databáze, obdrží tento uživatel oprávnění CONNECT a může se k této databázi připojit jako člen veřejné role. Na začátku jsou uživateli udělena jediná oprávnění, která jsou uživateli k dispozici, veřejné roli a všem skupinám Microsoft Entra, kde jsou členy. Udělení oprávnění uživatelům databáze založené na Microsoft Entra funguje stejně jako udělení oprávnění jakémukoli jinému typu uživatele. Doporučuje se udělit oprávnění databázovým rolím a přidat uživatele k těmto rolím místo přímého udělení oprávnění jednotlivým uživatelům. Další informace naleznete v tématu Základy oprávnění databázového stroje. Další informace o speciálních rolích služby SQL Database najdete v tématu Správa databází a přihlášení ve službě Azure SQL Database. Uživatelský účet federované domény, který se importuje do spravované domény jako externí uživatel, musí používat identitu spravované domény.

Uživatelé Microsoft Entra jsou označeni v metadatech databáze s typem E (EXTERNAL_USER) a pro skupiny s typem X (EXTERNAL_GROUPS). Další informace najdete v tématu sys.database_principals.

Připojení do databáze pomocí SSMS nebo SSDT

Pokud chcete ověřit, že je správce Microsoft Entra správně nastavený, připojte se k master databázi pomocí účtu správce Microsoft Entra. Pokud chcete vytvořit uživatele databáze založené na Microsoft Entra, připojte se k databázi pomocí identity Microsoft Entra s přístupem k databázi a alespoň ALTER ANY USER oprávnění.

Použití identity Microsoft Entra pro připojení pomocí SSMS nebo SSDT

Následující postupy ukazují, jak se připojit ke službě SQL Database pomocí identity Microsoft Entra pomocí aplikace SQL Server Management Studio (SSMS) nebo nástrojů SQL Server Database Tools (SSDT).

Microsoft Entra ID – integrované

Tuto metodu použijte, pokud jste přihlášení k Windows pomocí přihlašovacích údajů Microsoft Entra z federované domény nebo spravované domény nakonfigurované pro bezproblémové jednotné přihlašování pro předávací ověřování a ověřování hash hesel. Další informace naleznete v tématu Bezproblémové jednotné přihlašování Microsoft Entra.

  1. Spusťte SSMS nebo SSDT a v dialogovém okně Připojení na server (nebo Připojení do databázového stroje) v poli Ověřování vyberte Azure Active Directory – Integrované. Nemusíte zadávat heslo, protože se pro připojení zobrazují vaše stávající přihlašovací údaje.

    Screenshot from SSMS showing Microsoft Entra Integrated authentication.

  2. Vyberte tlačítko Možnosti a na stránce vlastnosti Připojení ion zadejte do pole Připojení do databáze název uživatelské databáze, ke které se chcete připojit.

    Screenshot from SSMS of the Options menu.

Microsoft Entra ID – heslo

Tuto metodu použijte při připojování k hlavnímu názvu Microsoft Entra pomocí spravované domény Microsoft Entra. Můžete ho také použít pro federované účty bez přístupu k doméně, například při práci na dálku.

Tuto metodu použijte k ověření databáze ve službě SQL Database nebo ve spravované instanci SQL pomocí uživatelů cloudové identity Microsoft Entra nebo uživatelů, kteří používají hybridní identity Microsoft Entra. Tato metoda podporuje uživatele, kteří chtějí používat přihlašovací údaje systému Windows, ale jejich místní počítač není připojený k doméně (například pomocí vzdáleného přístupu). V tomto případě může uživatel s Windows označit svůj účet domény a heslo a může se ověřit v databázi ve službě SQL Database, ve službě SQL Managed Instance nebo Azure Synapse.

  1. Spusťte SSMS nebo SSDT a v dialogovém okně Připojení na server (nebo Připojení do databázového stroje) v poli Ověřování vyberte Azure Active Directory – Heslo.

  2. Do pole Uživatelské jméno zadejte své uživatelské jméno Microsoft Entra ve formátu username\@domain.com. Uživatelská jména musí být účet z MICROSOFT Entra ID nebo účtu ze spravované nebo federované domény s Id Microsoft Entra.

  3. Do pole Heslo zadejte své uživatelské heslo pro účet Microsoft Entra nebo spravovaný nebo federovaný účet domény.

    Screenshot from SSMS using Microsoft Entra Password authentication.

  4. Vyberte tlačítko Možnosti a na stránce vlastnosti Připojení ion zadejte do pole Připojení do databáze název uživatelské databáze, ke které se chcete připojit. (Viz obrázek v předchozí možnosti.)

Microsoft Entra ID – Univerzální s vícefaktorovým ověřováním

Tuto metodu použijte pro interaktivní ověřování s vícefaktorovým ověřováním (MFA) s interaktivně požadovaným heslem. Tuto metodu lze použít k ověřování databází ve službě SQL Database, SQL Managed Instance a Azure Synapse pro uživatele výhradně cloudové identity Microsoft Entra nebo pro uživatele, kteří používají hybridní identity Microsoft Entra.

Další informace najdete v tématu Použití vícefaktorového ověřování Microsoft Entra se službou SQL Database a Azure Synapse (podpora SSMS pro MFA).

Microsoft Entra ID – instanční objekt

Tuto metodu použijte k ověření databáze ve službě SQL Database nebo sql Managed Instance pomocí instančních objektů Microsoft Entra (aplikace Microsoft Entra). Další informace najdete v tématu Instanční objekt Microsoft Entra s Azure SQL.

Microsoft Entra ID – Spravovaná identita

Tuto metodu použijte k ověření databáze ve službě SQL Database nebo sql Managed Instance pomocí spravovaných identit Microsoft Entra. Další informace najdete v tématu Spravované identity v Microsoft Entra pro Azure SQL.

Microsoft Entra ID – výchozí

Možnost Výchozí ověřování s ID Microsoft Entra umožňuje ověřování prováděné prostřednictvím mechanismů bez hesla a neinteraktivních mechanismů, včetně spravovaných identit.

Použití identity Microsoft Entra pro připojení pomocí editoru dotazů na webu Azure Portal pro Azure SQL Database

Další informace o editoru dotazů na webu Azure Portal pro Azure SQL Database najdete v tématu Rychlý start: Použití editoru dotazů na webu Azure Portal k dotazování služby Azure SQL Database.

  1. Na webu Azure Portal přejděte do databáze SQL. Navštivte například řídicí panel Azure SQL.

  2. Na stránce Přehled databáze SQL na webu Azure Portal vyberte v nabídce vlevo editor dotazů.

  3. Na přihlašovací obrazovce v části Vítejte ve službě SQL Database Editor Power Query vyberte Pokračovat jako <ID> uživatele nebo skupiny.

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

Použití identity Microsoft Entra pro připojení z klientské aplikace

Následující postupy ukazují, jak se připojit ke službě SQL Database pomocí identity Microsoft Entra z klientské aplikace. Nejedná se o úplný seznam metod ověřování při použití identity Microsoft Entra. Další informace najdete v tématu Připojení do Azure SQL s ověřováním Microsoft Entra a SqlClient.

Integrované ověřování Microsoft Entra

Pokud chcete použít integrované ověřování systému Windows, musí být služba Active Directory vaší domény federovaná s ID Microsoft Entra nebo by měla být spravovaná doména nakonfigurovaná pro bezproblémové jednotné přihlašování pro předávací ověřování nebo ověřování hash hesel. Další informace naleznete v tématu Bezproblémové jednotné přihlašování Microsoft Entra.

Vaše klientská aplikace (nebo služba) připojující se k databázi musí být spuštěná na počítači připojeném k doméně v rámci přihlašovacích údajů uživatele k doméně.

Pokud se chcete připojit k databázi pomocí integrovaného ověřování a identity Microsoft Entra, musí být klíčové slovo Ověřování v databázi připojovací řetězec nastaveno na Active Directory Integrated. Nahraďte <database_name> názvem databáze. Následující ukázka kódu jazyka C# používá ADO .NET.

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

Pro připojení ke službě Azure SQL Database se nepodporuje klíčové slovo Integrated Security=True připojovací řetězec. Při vytváření připojení ODBC je nutné odebrat mezery a nastavit ověřování na ActiveDirectoryIntegrated.

Ověřování heslem Microsoft Entra

Pokud se chcete připojit k databázi pomocí uživatelských účtů identit pouze cloudu Microsoft Entra nebo uživatelů, kteří používají hybridní identity Microsoft Entra, musí být klíčové slovo ověřování nastaveno na Active Directory Passwordhodnotu . Připojovací řetězec musí obsahovat klíčová slova a hodnoty ID uživatele, UID a Password/PWD. Nahraďte <database_name>, <email_address>a <password> odpovídajícími hodnotami. Následující ukázka kódu jazyka C# používá ADO .NET.

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();

Přečtěte si další informace o metodách ověřování Microsoft Entra pomocí ukázkových ukázek kódu, které jsou k dispozici na GitHubu pro ověřování Microsoft Entra.

Přístupový token Microsoft Entra ID

Tato metoda ověřování umožňuje službám střední vrstvy získat webové tokeny JSON (JWT) pro připojení k databázi ve službě SQL Database, spravované instanci SQL nebo Azure Synapse získáním tokenu z Microsoft Entra ID. Tato metoda umožňuje různé scénáře aplikací, včetně identit služeb, instančních objektů a aplikací využívajících ověřování pomocí certifikátů. Abyste mohli používat ověřování pomocí tokenu Microsoft Entra, musíte provést čtyři základní kroky:

  1. Zaregistrujte aplikaci pomocí Microsoft Entra ID a získejte ID klienta pro váš kód.
  2. Vytvořte uživatele databáze představující aplikaci. (Dokončeno dříve v části Vytváření uživatelů s omezením namapovaných na identity Microsoft Entra.)
  3. Vytvořte certifikát v klientském počítači, na kterém běží aplikace.
  4. Přidejte certifikát jako klíč pro vaši aplikaci.

Ukázková připojovací řetězec Nahraďte <database_name> názvem databáze:

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

Další informace najdete na blogu zabezpečení SQL Serveru. Informace o přidání certifikátu naleznete v tématu Začínáme s ověřováním na základě certifikátů v Microsoft Entra ID.

sqlcmd

Následující příkazy se připojují pomocí verze 13.1 sqlcmd. Stáhněte nástroje příkazového řádku Společnosti Microsoft 14.0 pro SQL Server.

Poznámka:

sqlcmd-G příkaz nefunguje se systémovými identitami a vyžaduje přihlášení instančního objektu uživatele.

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

Řešení potíží s ověřováním Microsoft Entra

Pokyny k řešení potíží s ověřováním Microsoft Entra najdete na blogu: Řešení potíží souvisejících s ověřováním Azure AD pomocí Azure SQL DB a DW.