Konfigurace a správa ověřování Azure AD pro Azure SQL
PLATÍ PRO:
Azure SQL Database Azure SQL Managed Instance
Azure Synapse Analytics
v tomto článku se dozvíte, jak vytvořit a naplnit instanci Azure Active Directory (azure ad), a pak použít azure AD s Azure SQL Database, spravovanou instancí azure SQLa analýzou azure Synapse. přehled najdete v tématu Azure Active Directory authentication.
Metody ověřování Azure AD
Ověřování Azure AD podporuje následující metody ověřování:
- Pouze cloudové identity Azure AD
- Hybridní identity Azure AD, které podporují:
- Cloudové ověřování se dvěma možnostmi společně s bezproblémové jednotné přihlašování (SSO)
- Ověřování hodnoty hash hesel Azure AD
- Předávací ověřování Azure AD
- Federovaného ověřování
- Cloudové ověřování se dvěma možnostmi společně s bezproblémové jednotné přihlašování (SSO)
další informace o metodách ověřování Azure AD a o tom, která z nich si můžete vybrat, najdete v tématu volba správné metody ověřování pro Azure Active Directory řešení hybridní identity.
Další informace o hybridních identitách, nastaveních a synchronizaci Azure AD najdete v těchto tématech:
- ověřování hodnotou hash hesla – implementace synchronizace hodnot hash hesel pomocí Azure AD Connect synchronizace
- předávací ověřování – Azure Active Directory předávací ověřování
- federované ověřování – nasazení Active Directory Federation Services (AD FS) v Azure a Azure AD Connect a federace
Vytvoření a naplnění instance Azure AD
Vytvořte instanci Azure AD a naplňte ji uživateli a skupinami. Azure AD může být počáteční doménou spravovanou službou Azure AD. Azure AD může být také místní Active Directory Domain Services, která je federované s Azure AD.
Další informace naleznete v tématu:
- Integrování místních identit do služby Azure Active Directory
- Přidání vlastního názvu domény do Azure AD
- Microsoft Azure teď podporuje federaci s Windows Server Active Directory
- Co je Azure Active Directory?
- Správa služby Azure AD pomocí rozhraní Windows PowerShell
- Porty a protokoly vyžadované hybridní identitou
Přiřazení nebo přidání předplatného Azure do služby Azure Active Directory
přidružte své předplatné Azure k Azure Active Directory tím, že adresář považujete za důvěryhodný adresář pro předplatné azure hostující databázi. podrobnosti najdete v tématu přidružení nebo přidání předplatného Azure ke svému tenantovi Azure Active Directory.
Pomocí přepínání adresářů v Azure Portal přepněte do předplatného přidruženého k doméně.
Důležité
Každé předplatné služby Azure má vztah důvěryhodnosti s instancí služby Azure AD. To znamená, že tomuto adresáři svěřuje ověřování uživatelů, služeb i 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. Vztah důvěryhodnosti, který má předplatné s adresářem, se liší od vztahu, který má předplatné se všemi ostatními prostředky ve službě Azure (webové stránky, databáze apod.), což jsou pro předplatné spíše podřízené prostředky. 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ář však ve službě Azure zůstane a vy k němu můžete přidružit jiné předplatné a pokračovat ve správě uživatelů adresáře. Další informace o prostředcích najdete v tématu porozumění přístupu k prostředkům v Azure. Další informace o tomto důvěryhodném vztahu najdete v tématu Postup přidružení nebo přidání předplatného Azure do Azure Active Directory.
Správce Azure AD se serverem v SQL Database
každý server v Azure (který hostuje SQL Database nebo Azure Synapse) začíná s jedním účtem správce serveru, který je správcem celého serveru. Vytvořte druhý účet správce jako účet Azure AD. Tento objekt zabezpečení je vytvořen jako uživatel databáze s omezením v hlavní databázi serveru. Účty správců jsou členy role db_owner v každé databázi uživatelů a jako uživatel dbo zadejte každou uživatelskou databázi. Další informace o účtech správců najdete v tématu Správa databází a přihlašovacíchúdajů.
při použití Azure Active Directory s geografickou replikací musí být správce Azure Active Directory nakonfigurovaný jak pro primární, tak pro sekundární servery. pokud server nemá správce Azure Active Directory, Azure Active Directory přihlášení a uživatelé obdrží Cannot connect chybu serveru.
Poznámka
Uživatelé, kteří nejsou založeni na účtu Azure AD (včetně účtu správce serveru), nemůžou vytvářet uživatele založené na službě Azure AD, protože nemají oprávnění k ověřování uživatelů navrhovaných databází pomocí Azure AD.
zřídit správce Azure AD (SQL spravovanou instanci)
Důležité
postupovat pouze v případě, že zřizujete spravovanou instanci Azure SQL. Tuto operaci může spustit jenom globální správce nebo správce privilegované role v Azure AD.
Ve verzi Public Preview můžete přiřadit roli čtenáři adresáře ke skupině ve službě Azure AD. vlastníci skupiny pak můžou přidat identitu spravované instance jako člena této skupiny, což vám umožní zřídit správce Azure AD pro SQL spravovanou instanci. další informace o této funkci najdete v tématu role čtečky adresářů v Azure Active Directory pro Azure SQL.
vaše SQL spravovaná Instance potřebuje oprávnění ke čtení služby Azure AD, aby bylo možné úspěšně provádět úlohy, jako je například 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 pro čtení Azure AD udělit oprávnění SQL Managed Instance. Můžete to provést pomocí Azure Portal nebo PowerShellu.
portál Azure
pokud chcete udělit SQL spravované instanci azure ad ke čtení pomocí Azure Portal, přihlaste se jako globální správce ve službě Azure AD a postupujte podle těchto kroků:
V Azure Portalv pravém horním rohu vyberte připojení z rozevíracího seznamu možných aktivních adresářů.
Vyberte správnou službu Active Directory jako výchozí službu Azure AD.
tento krok propojí předplatné přidružené ke službě Active Directory s SQL Managed instance a zajistí, že se stejné předplatné používá pro instanci Azure AD i pro spravovanou instanci SQL.
přejděte do SQL spravované Instance, kterou chcete použít pro integraci služby Azure AD.

Vyberte banner v horní části stránky Správce služby Active Directory a udělte aktuálnímu uživateli oprávnění.

Po úspěšném dokončení operace se v pravém horním rohu zobrazí následující oznámení:

teď si můžete vybrat svého správce Azure AD pro vaši SQL spravovanou instanci. V takovém případě na stránce Správce služby Active Directory vyberte nastavit správce .

Na stránce správce Azure AD vyhledejte uživatele, vyberte uživatele nebo skupinu, které chcete správce, a pak vyberte Vybrat.
Na stránce Správce služby Active Directory se zobrazují všichni členové a skupiny služby Active Directory. Uživatele nebo skupiny, které jsou zobrazené šedě, nejde vybrat, protože nejsou podporované jako správci Azure AD. Podívejte se na seznam podporovaných správců ve funkcích a omezeních služby Azure AD. řízení přístupu na základě role azure (azure RBAC) platí jenom pro Azure Portal a není šířené do SQL Database, SQL spravované Instance nebo Azure Synapse.

V horní části stránky Správce služby Active Directory vyberte Uložit.

Proces změny správce může trvat několik minut. Pak se nový správce zobrazí v poli Správce služby Active Directory.
po zřízení správce Azure ad pro vaši SQL spravovanou instanci můžete začít vytvářet objekty zabezpečení serveru azure ad (přihlášení) pomocí syntaxe vytvoření přihlášení . další informace najdete v tématu přehled spravované Instance SQL.
Tip
Chcete-li později odebrat správce, v horní části stránky Správce služby Active Directory vyberte možnost Odebrat správce a pak vyberte Uložit.
PowerShell
pokud chcete udělit SQL spravované instanci Azure AD pro čtení pomocí powershellu, spusťte tento skript:
# Gives Azure Active Directory read permission to a Service Principal representing the SQL Managed Instance.
# Can be executed only by a "Global Administrator" or "Privileged Role Administrator" type of user.
$aadTenant = "<YourTenantId>" # Enter your tenant ID
$managedInstanceName = "MyManagedInstance"
# Get Azure AD role "Directory Users" and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq $roleName}
if ($role -eq $null) {
# Instantiate an instance of the role template
$roleTemplate = Get-AzureADDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}
Enable-AzureADDirectoryRole -RoleTemplateId $roleTemplate.ObjectId
$role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq $roleName}
}
# Get service principal for your SQL Managed Instance
$roleMember = Get-AzureADServicePrincipal -SearchString $managedInstanceName
$roleMember.Count
if ($roleMember -eq $null) {
Write-Output "Error: No Service Principals with name '$ ($managedInstanceName)', make sure that managedInstanceName parameter was entered correctly."
exit
}
if (-not ($roleMember.Count -eq 1)) {
Write-Output "Error: More than one service principal with name pattern '$ ($managedInstanceName)'"
Write-Output "Dumping selected service principals...."
$roleMember
exit
}
# Check if service principal is already member of readers role
$allDirReaders = Get-AzureADDirectoryRoleMember -ObjectId $role.ObjectId
$selDirReader = $allDirReaders | where{$_.ObjectId -match $roleMember.ObjectId}
if ($selDirReader -eq $null) {
# Add principal to readers role
Write-Output "Adding service principal '$($managedInstanceName)' to 'Directory Readers' role'..."
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId $roleMember.ObjectId
Write-Output "'$($managedInstanceName)' service principal added to 'Directory Readers' role'..."
#Write-Output "Dumping service principal '$($managedInstanceName)':"
#$allDirReaders = Get-AzureADDirectoryRoleMember -ObjectId $role.ObjectId
#$allDirReaders | where{$_.ObjectId -match $roleMember.ObjectId}
}
else {
Write-Output "Service principal '$($managedInstanceName)' is already member of 'Directory Readers' role'."
}
PowerShell pro SQL spravovanou instanci
pokud chcete spustit rutiny powershellu, musíte mít Azure PowerShell nainstalovanou a spuštěnou. Podrobné informace najdete v tématu Instalace a konfigurace prostředí Azure PowerShell.
Důležité
modul Azure Resource Manager powershellu (RM) je ve službě Azure SQL Managed Instance stále podporován, ale všechny budoucí vývojové prostředí jsou pro modul Az. SQL. V modulu AzureRM bude i nadále docházet k opravám chyb až do prosince 2020. Argumenty pro příkazy v modulech AZ a v modulech AzureRm jsou v podstatě identické. další informace o kompatibilitě najdete v tématu představení nového Azure PowerShell Az module.
pokud chcete zřídit správce Azure AD, spusťte následující příkazy Azure PowerShell:
- Connect-AzAccount
- Select-AzSubscription
Rutiny používané ke zřízení a správě správce Azure AD pro SQL managed Instance jsou uvedené v následující tabulce:
| Název rutiny | Description |
|---|---|
| Set-AzSqlInstanceActiveDirectoryAdministrator | Z opatření správce Azure AD pro SQL spravované instance v aktuálním předplatném. (Musí to být z aktuálního předplatného.) |
| Remove-AzSqlInstanceActiveDirectoryAdministrator | Odebere správce Azure AD pro SQL instance v aktuálním předplatném. |
| Get-AzSqlInstanceActiveDirectoryAdministrator | Vrátí informace o správci Azure AD pro SQL instance v aktuálním předplatném. |
Následující příkaz získá informace o správci Azure AD pro SQL s názvem ManagedInstance01, která je přidružená ke skupině prostředků s názvem ResourceGroup01.
Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01"
Následující příkaz z vytvoří skupinu správce Azure AD 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 Azure AD pro spravovanou instanci SQL s názvem ManagedInstanceName01 přidružené ke skupině prostředků ResourceGroup01.
Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstanceName01" -Confirm -PassThru
Zřízení správce Azure AD (SQL Database)
Důležité
Tento postup proveďte pouze v případě, že zřizovací server pro SQL Database nebo Azure Synapse.
Následující dva postupy ukazují, jak zřídit správce Azure Active Directory serveru v Azure Portal a pomocí PowerShellu.
portál Azure
V Azure Portalv pravém horním rohu vyberte připojení. Zobrazí se rozevírací seznam možných aktivních adresářů. Jako výchozí službu Azure AD zvolte správnou službu Active Directory. Tento krok prokažte Active Directory přidružené k předplatnému se serverem a ujistěte se, že se stejné předplatné používá pro Azure AD i server.
Vyhledejte a vyberte SQL server.

Poznámka
Než na této stránce vyberete SQL servery , můžete vybrat hvězdičku vedle názvu a přidat tak kategorii mezi oblíbené a přidat SQL servery do levého navigačního panelu.
Na stránce SQL Server vyberte Správce služby Active Directory.
Na stránce správce Active Directory vyberte Nastavit správce.

Na stránce Přidat správce vyhledejte uživatele, vyberte uživatele nebo skupinu jako správce a pak vyberte Vybrat. (Na stránce správce Active Directory se zobrazí všichni členové a skupiny vaší služby Active Directory. Uživatele nebo skupiny, které jsou zašednuté, není možné vybrat, protože nejsou podporované jako správci Azure AD. (Seznam podporovaných správců najdete v části Funkce a omezení Služby Azure AD tématu Použití ověřování Azure Active Directory pro ověřování pomocí SQL Database nebo Azure Synapse.) Řízení přístupu na základě role v Azure (Azure RBAC) se vztahuje pouze na portál a nešíře se do SQL Server.

V horní části stránky správce Active Directory vyberte Uložit.

Proces změny správce může trvat několik minut. Potom se nový správce zobrazí v poli správce active directory.
Poznámka
Při nastavování správce Azure AD už nemůže být nové jméno správce (uživatel nebo skupina) ve virtuální hlavní databázi přítomné jako ověřovací uživatel serveru. Pokud je k dispozici, instalace správce Azure AD selže. vrácení zpět jeho vytvoření a indikující, že takový správce (jméno) již existuje. Vzhledem k tomu, že takový uživatel ověřování serveru není součástí Azure AD, veškeré úsilí o připojení k serveru pomocí ověřování Azure AD selže.
Pokud chcete později odebrat správce, vyberte v horní části stránky správce Active Directory odebrat správce a pak vyberte Uložit.
PowerShell pro SQL Database a Azure Synapse
Pokud chcete spouštět rutiny PowerShellu, musíte mít Azure PowerShell a spuštěný. Podrobné informace najdete v tématu Instalace a konfigurace prostředí Azure PowerShell. Pokud chcete zřídit správce Azure AD, spusťte následující Azure PowerShell příkazy:
- Connect-AzAccount
- Select-AzSubscription
Rutiny používané ke zřízení a správě správce Azure AD pro SQL Database a Azure Synapse:
| Název rutiny | Description |
|---|---|
| Set-AzSqlServerActiveDirectoryAdministrator | Z opatření Azure Active Directory správce pro server hostující SQL Database nebo Azure Synapse. (Musí to být z aktuálního předplatného.) |
| Remove-AzSqlServerActiveDirectoryAdministrator | Odebere správce Azure Active Directory serveru, který je hostitelem SQL Database nebo Azure Synapse. |
| Get-AzSqlServerActiveDirectoryAdministrator | Vrátí informace o správci Azure Active Directory, který je aktuálně nakonfigurovaný pro server hostující 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 zprostředkí skupinu správce Azure AD DBA_Group (ID objektu ) pro server demo_server ve skupině prostředků s názvem 40b79501-b343-44ed-9ce7-da4c8cc7353f Group-23:
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" -DisplayName "DBA_Group"
Vstupní parametr DisplayName přijímá buď zobrazovaný název Azure AD, nebo hlavní název uživatele(hlavního názvu uživatele). Příklad: DisplayName="John Smith" a DisplayName="johns@contoso.com". Pro skupiny Azure AD se podporuje pouze zobrazovaný název Azure AD.
Poznámka
Následující Azure PowerShell Set-AzSqlServerActiveDirectoryAdministrator nezabrání zřizování správců Azure AD pro nepodporované uživatele. Nepodporovaný uživatel se může zřídit, ale nemůže se připojit k databázi.
Následující příklad používá volitelné ObjectID:
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" `
-DisplayName "DBA_Group" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353f"
Poznámka
Pokud displayName není jedinečný, vyžaduje se ID objektu Azure AD. Pokud chcete načíst hodnoty ObjectID a DisplayName, použijte část Active Directory portál Azure Classic a zobrazte vlastnosti uživatele nebo skupiny.
Následující příklad vrátí informace o aktuálním správci Azure AD pro server:
Get-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List
Následující příklad odebere správce Azure AD:
Remove-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"
Poznámka
Můžete také zřídit správce Azure Active Directory pomocí rozhraní REST API. Další informace najdete v tématu Referenční informace a operace REST API správy služeb pro operace Azure SQL Database pro Azure SQL Database
Nastavení nebo zrušení nastavení správce Azure AD pomocí objektů služby
Pokud plánujete nastavit nebo zrušit nastavení správce Azure AD pro Azure SQL, je potřeba další oprávnění rozhraní API. Oprávnění Rozhraní API aplikace Directory.Read.All bude potřeba přidat do vaší aplikace ve službě Azure AD.
Poznámka
Tato část o nastavení správce Azure AD se vztahuje pouze na použití příkazů PowerShellu nebo rozhraní příkazového řádku, protože Azure Portal jako objekt služby Azure AD.
Tento objekt služby bude také potřebovat roli přispěvatele SQL Server pro SQL Database nebo roli přispěvatele spravované instance SQL spravované instance pro SQL instanci.
Další informace najdete v tématu o objektech služby (aplikacích Azure AD).
Konfigurace klientských počítačů
Na všech klientských počítačích, ze kterých se vaše aplikace nebo uživatelé připojují k SQL Database nebo Azure Synapse pomocí identit Azure AD, musíte nainstalovat následující software:
- .NET Framework 4.6 nebo novější z https://msdn.microsoft.com/library/5a4x27ek.aspx .
- Azure Active Directory Authentication Library pro SQL Server (ADAL.DLL). Níže jsou uvedené odkazy ke stažení pro instalaci nejnovějších ovladačů SSMS, ODBC a OLE DB, který obsahujeADAL.DLL knihovnu.
Tyto požadavky můžete splnit takto:
- Instalace nejnovější verze nástroje SQL Server Management Studio nebo SQL Server Data Tools splňuje .NET Framework 4.6.
- SSMS nainstaluje verzi x86 ADAL.DLL.
- SSDT nainstaluje verzi amd64 ADAL.DLL.
- Nejnovější verze Visual Studio Visual Studio Downloads splňuje požadavek .NET Framework 4.6, ale nenainstaluje požadovanou verzi amd64 ADAL.DLL.
Vytváření uživatelů s omezením namapovaných na identity Azure AD
Vzhledem SQL spravovaná instance podporuje objekty zabezpečení serveru (přihlášení) Azure AD, použití uživatelů obsažené databáze se nevyžaduje. Objekty zabezpečení (přihlášení) serveru Azure AD umožňuje vytvářet přihlášení z uživatelů, skupin nebo aplikací Azure AD. To znamená, že se můžete ve spravované instanci SQL pomocí přihlášení k serveru Azure AD místo uživatele databáze s obsaženého obsahu. Další informace najdete v tématu SQL přehled spravované instance. Syntaxi pro vytváření objektů zabezpečení serveru Azure AD (přihlášení) najdete v tématu CREATE LOGIN.
Použití ověřování Azure Active Directory s SQL Database a Azure Synapse ale vyžaduje použití uživatelů obsažené databáze na základě identity Azure AD. Uživatel databáze s obsaženým obsahem nemá přihlášení v hlavní databázi a mapuje se na identitu ve službě Azure AD, která je přidružená k databázi. Identitou Azure AD může být buď individuální uživatelský účet, nebo skupina. Další informace o uživatelích databáze s obsahem najdete v tématu Uživatelé databáze s obsaženým obsahem – Vytvoření přenosné databáze.
Poznámka
Uživatele databáze (s výjimkou správců) není možné vytvořit pomocí Azure Portal. Role Azure nejsou šířeny do databáze SQL Database, SQL spravované instance ani Azure Synapse. Role Azure se používají ke správě prostředků Azure a nevztahují se na oprávnění k databázi. Role Přispěvatel SQL Server například neuděluje přístup pro připojení k databázi v SQL Database, spravované instanci SQL ani Azure Synapse. Přístupové oprávnění musí být uděleno přímo v databázi pomocí příkazů Transact-SQL.
Upozornění
Speciální znaky, jako je dvojtečka nebo ampersand, pokud jsou zahrnuté jako uživatelská jména v SQL a : & nejsou CREATE LOGIN CREATE USER podporovány.
Důležité
Uživatelé a instanční objekty Azure AD (aplikace Azure AD), které jsou členy více než 2048 skupin zabezpečení Azure AD, se nepodporují pro přihlášení k databázi ve službě SQL Database, Managed Instance ani Azure Synapse.
Pokud chcete vytvořit uživatele databáze s obsažené v Azure AD (jiného než správce serveru, který je vlastnit databázi), připojte se k databázi s identitou Azure AD jako uživatel s alespoň oprávněním ALTER ANY USER. Pak použijte následující syntaxi transact-SQL:
CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
Azure_AD_principal_name může být hlavní název uživatele uživatele Azure AD nebo zobrazovaný název skupiny Azure AD.
Příklady: Vytvoření uživatele databáze s obsaženého obsahu představujícího federovaného nebo spravovaného uživatele domény Azure AD:
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 obsaženým obsahem, který představuje skupinu azure AD nebo federované domény, zadejte zobrazovaný název skupiny zabezpečení:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Vytvoření uživatele databáze s obsaženým obsahem představujícího aplikaci, která se připojuje pomocí tokenu Azure AD:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
Poznámka
Tento příkaz vyžaduje, SQL přístup k Azure AD ("externí zprostředkovatel") jménem přihlášeného uživatele. Někdy nastanou okolnosti, které způsobí, že Azure AD vrátí výjimku zpět SQL. V těchto případech se uživateli zobrazí chyba SQL 33134, která by měla obsahovat chybovou zprávu specifickou pro Azure AD. Ve většině času bude chyba říci, že přístup byl odepřen nebo že se uživatel musí zaregistrovat do MFA pro přístup k prostředku nebo že přístup mezi aplikacemi první strany musí být zpracován předběžnou autorizací. V prvních dvou případech jsou příčinou problému obvykle zásady podmíněného přístupu, které jsou nastavené v tenantovi Azure AD uživatele: zabraňují uživateli v přístupu k externímu poskytovateli. Tento problém by se měl vyřešit aktualizací zásad podmíněného přístupu tak, aby byl umožněn přístup k aplikaci 00000002-0000-0000-00000000000 (ID aplikace rozhraní AZURE AD Graph API). V případě, že chyba říká, že přístup mezi aplikacemi první strany musí být zpracován předběžnou autorizací, je problém, protože uživatel je přihlášený jako instanční objekt. Příkaz by měl být úspěšný, pokud ho místo toho spustí uživatel.
Tip
Uživatele nemůžete vytvořit přímo z jiné Azure Active Directory než z Azure Active Directory, která je přidružená k vašemu předplatnému Azure. Členy jiných adresářů Active Directory, kteří jsou importované uživateli v přidružené službě Active Directory (označované jako externí uživatelé), však mohou být přidáni do skupiny Active Directory v tenantovi Active Directory. Vytvořením uživatele databáze s obsahem pro skupinu AD získají uživatelé z externí služby Active Directory přístup k SQL Database.
Další informace o vytváření uživatelů obsažené databáze na základě Azure Active Directory najdete v tématu CREATE USER (Transact-SQL).
Poznámka
Odebráním Azure Active Directory serveru zabráníte připojení libovolného uživatele ověřování Azure AD k serveru. V případě potřeby může nepoužitelné uživatele Azure AD ručně zrušit SQL Database správce.
Poznámka
Pokud se zobrazí vypršení časového limitu připojení, možná budete muset nastavit parametr připojovacího řetězce TransparentNetworkIPResolution na hodnotu false. Další informace najdete v tématu Problém s časovým limitem připojení .NET Framework 4.6.1 – TransparentNetworkIPResolution.
Když vytvoříte uživatele databáze, tento uživatel obdrží oprávnění CONNECT a může se k této databázi připojit jako člen role PUBLIC. Na začátku jsou pro uživatele k dispozici pouze oprávnění udělená roli PUBLIC nebo jakákoli oprávnění udělená jakékoli skupině Azure AD, ve které je členem. Po zřízení uživatele databáze s obsažené v Azure AD můžete uživateli udělit další oprávnění stejným způsobem, jakým udělíte oprávnění libovolnému jinému typu uživatele. Obvykle udělte oprávnění databázovým rolím a přidejte do rolí uživatele. Další informace najdete v tématu Základy oprávnění databázového stroje. Další informace o speciálních rolích SQL Database najdete v tématu Správa databází a přihlášení v Azure SQL Database. Uživatelský účet federované domény, který je importován do spravované domény jako externí uživatel, musí používat identitu spravované domény.
Poznámka
Uživatelé Azure AD jsou v metadatech databáze označeni typem E (EXTERNAL_USER) a pro skupiny typu X (EXTERNAL_GROUPS). Další informace najdete v tématu sys.database_principals.
Připojení k databázi pomocí SSMS nebo SSDT
Pokud chcete ověřit správné nastavení správce Azure AD, připojte se k hlavní databázi pomocí účtu správce Azure AD. Pokud chcete zřídit uživatele databáze s obsažené v Azure AD (jiného než správce serveru, který je vlastnit databázi), připojte se k databázi pomocí identity Azure AD, která má přístup k databázi.
Důležité
Podpora ověřování Azure Active Directory je dostupná u SQL Server Management Studio (SSMS) od roku 2016 a od SQL Server Data Tools od roku 2015. Verze SSMS ze srpna 2016 zahrnuje také podporu univerzálního ověřování Active Directory, která správcům umožňuje vyžadovat vícefaktorové ověřování pomocí telefonního hovoru, textové zprávy, čipových karet s pin kódem nebo oznámení mobilní aplikace.
Použití identity Azure AD pro připojení pomocí SSMS nebo SSDT
Následující postupy ukazují, jak se připojit k SQL Database s identitou Azure AD pomocí SQL Server Management Studio nebo SQL Server Database Tools.
Integrované ověřování služby Active Directory
Tuto metodu použijte, pokud jste přihlášení k Windows pomocí přihlašovacích údajů Azure Active Directory z federované domény nebo spravované domény, která je nakonfigurovaná pro bezproblémové jednotné přihlašování pro předávkované ověřování a ověřování hodnot hash hesel. Další informace najdete v Azure Active Directory bezproblémového jednotného přihlašování.
Spusťte Management Studio nebo Datové nástroje a v dialogovém okně Připojení na server (nebo Připojení k databázovému stroji) vyberte v poli Ověřování možnost Azure Active Directory – integrováno. Není potřeba žádné heslo nebo je možné ho zadat, protože se zobrazí vaše stávající přihlašovací údaje pro připojení.

Vyberte tlačítko Možnosti a na stránce Vlastnosti připojení do pole Připojení k databázi zadejte název uživatelské databáze, ke které se chcete připojit. Další informace najdete v článku Vícefaktorové ověřování Azure AD o rozdílech mezi vlastnostmi připojení pro SSMS 17.x a 18.x.

Ověřování hesla služby Active Directory
Tuto metodu použijte při připojování pomocí hlavního názvu azure AD pomocí spravované domény Azure AD. Můžete ji také použít pro federované účty bez přístupu k doméně, například při vzdálené práci.
Tuto metodu použijte k ověření u databáze ve službě SQL Database nebo spravované instanci SQL s využitím uživatelů cloudové identity Azure AD nebo uživatelů, kteří používají hybridní identity Azure AD. Tato metoda podporuje uživatele, kteří chtějí Windows přihlašovací údaje, ale jejich místní počítač není připojený k doméně (například pomocí vzdáleného přístupu). V takovém případě může Windows uživatele uvést svůj doménový účet a heslo a ověřit se u databáze v SQL Database, spravované instanci SQL nebo Azure Synapse.
Spusťte Management Studio nebo Datové nástroje a v dialogovém okně Připojení to Server (nebo Připojení to Database Engine ) vyberte v poli Ověřování možnost Azure Active Directory – Heslo.
Do pole Uživatelské jméno zadejte své uživatelské Azure Active Directory ve formátu uživatelské jméno @ domain.com. Uživatelská jména musí být účet Azure Active Directory nebo účet ze spravované nebo federované domény s Azure Active Directory.
Do pole Heslo zadejte své uživatelské heslo pro účet Azure Active Directory nebo účet spravované/federované domény.

Vyberte tlačítko Možnosti a na stránce Vlastnosti připojení do pole Připojení k databázi zadejte název uživatelské databáze, ke které se chcete připojit. (Viz obrázek v předchozí možnosti.)
Interaktivní ověřování active directory
Tuto metodu použijte pro interaktivní ověřování s vícefaktorové ověřování (MFA) nebo bez něj a interaktivně si vyžádáte heslo. Tuto metodu je možné použít k ověření u databáze v SQL Database, spravované instanci SQL a Azure Synapse pro uživatele cloudových identit Azure AD nebo uživatele, kteří používají hybridní identity Azure AD.
další informace najdete v tématu použití ověřování multi-factor Azure AD s SQL Database a Azure Synapse (podpora SSMS pro MFA).
Připojení z klientské aplikace pomocí identity Azure AD
následující postupy ukazují, jak se připojit k SQL Database s identitou Azure AD z klientské aplikace.
Integrované ověřování služby Active Directory
pokud chcete použít integrované ověřování Windows, musí být služba Active Directory vaší domény federované s Azure Active Directory nebo by měla být spravovaná doména, která je nakonfigurovaná na bezproblémové jednotné přihlašování pro ověřování pomocí předávacího nebo hesla hash. další informace najdete v tématu Azure Active Directory bezproblémové jednotné přihlašování.
Poznámka
MSAL.NET (Microsoft. Identity. Client) pro integrované ověřování Windows není podporováno pro bezproblémové jednotné přihlašování pro předávací a zatřiďovací ověřování pomocí hesla.
Klientská aplikace (nebo služba), která se připojuje k databázi, musí být spuštěná na počítači připojeném k doméně v rámci pověření domény uživatele.
Pokud se chcete připojit k databázi pomocí integrovaného ověřování a identity Azure AD, musí být klíčové slovo ověřování v připojovacím řetězci databáze nastavené na Active Directory Integrated . Následující ukázka kódu jazyka C# používá rozhraní ADO .NET.
string ConnectionString = @"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
Klíčové slovo připojovacího řetězce Integrated Security=True není podporováno pro připojení k Azure SQL Database. Při vytváření připojení rozhraní ODBC budete muset odebrat mezery a nastavit ověřování na ' ActiveDirectoryIntegrated '.
Ověřování hesla služby Active Directory
Pokud se chcete připojit k databázi pomocí uživatelských účtů identit jenom cloudu Azure AD nebo těch, kteří používají hybridní identity Azure AD, musí být klíčové slovo ověřování nastavené na Active Directory Password . Připojovací řetězec musí obsahovat klíčová slova ID uživatele/UID a heslo/heslo a hodnoty. Následující ukázka kódu jazyka C# používá rozhraní ADO .NET.
string ConnectionString =
@"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb; UID=bob@contoso.onmicrosoft.com; PWD=MyPassWord!";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
přečtěte si další informace o metodách ověřování azure ad pomocí ukázkových ukázek kódu dostupných v ukázce GitHub pro ověřování azure ad.
Token Azure AD
tato metoda ověřování umožňuje službám střední vrstvy získat tokeny JSON Web tokeny (JWT) pro připojení k databázi v SQL Database, SQL spravované instanci nebo Azure Synapse získáním tokenu z Azure AD. Tato metoda umožňuje různé scénáře aplikací, včetně identit služeb, instančních objektů a aplikací pomocí ověřování založeného na certifikátech. Chcete-li použít ověřování pomocí tokenu Azure AD, musíte provést čtyři základní kroky:
- zaregistrujte svoji aplikaci pomocí Azure Active Directory a získejte ID klienta pro svůj kód.
- Vytvořte uživatele databáze reprezentující aplikaci. (Dokončeno dříve v kroku 6.)
- V klientském počítači se spustí aplikace s vytvořením certifikátu.
- Přidejte certifikát jako klíč pro vaši aplikaci.
Vzorový připojovací řetězec:
string ConnectionString = @"Data Source=n9lxnyuzhv.database.windows.net; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.AccessToken = "Your JWT token";
conn.Open();
další informace najdete v blogu o SQL Server zabezpečení. Informace o přidání certifikátu najdete v tématu Začínáme s ověřováním na základě certifikátů v Azure Active Directory.
sqlcmd
Následující příkazy se připojují pomocí nástroje Sqlcmd verze 13,1, který je k dispozici na webu Download Center.
Poznámka
sqlcmd pomocí -G příkazu nefunguje u systémových identit a vyžaduje přihlášení k hlavnímu uživateli.
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 Azure AD
Pokyny k řešení problémů s ověřováním Azure AD najdete na následujícím blogu: https://techcommunity.microsoft.com/t5/azure-sql-database/troubleshooting-problems-related-to-azure-ad-authentication-with/ba-p/1062991
Další kroky
- přehled přihlašovacích údajů, uživatelů, databázových rolí a oprávnění v SQL Database najdete v tématech přihlášení, uživatelé, databázové role a uživatelské účty.
- Další informace o objektech zabezpečení databáze najdete v tématu Objekty zabezpečení.
- Další informace o databázových rolích najdete v tématu věnovaném databázovým rolím.
- Další informace o pravidlech brány firewall pro SQL Database najdete v tématu Pravidla brány firewall služby SQL Database.
- Informace o tom, jak nastavit uživatele hosta Azure AD jako správce Azure AD, najdete v tématu Vytvoření uživatelů hosta Azure AD a nastavení jako správce Azure AD.
- informace o instančních objektech s Azure SQL najdete v tématu vytvoření uživatelů azure ad pomocí aplikací azure ad .