Azure AD-verificatie configureren en beheren met Azure SQL
Van toepassing op: Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
In dit artikel wordt beschreven hoe u een exemplaar van Azure Active Directory (Azure AD) maakt en vult en vervolgens Azure AD gebruikt met Azure SQL Database, Azure SQL Managed Instance en Azure Synapse Analytics. Zie Azure Active Directory-verificatie voor een overzicht.
verificatiemethoden voor Azure AD
Azure AD-verificatie ondersteunt de volgende verificatiemethoden:
- Azure AD-identiteiten met het kenmerk Alleen-cloud
- Azure AD hybride identiteiten die ondersteuning bieden voor:
- Cloudverificatie met twee opties in combinatie met naadloze eenmalige aanmelding (SSO)
- wachtwoordhashverificatie Azure AD
- Azure AD passthrough-verificatie
- Federatieve verificatie
- Cloudverificatie met twee opties in combinatie met naadloze eenmalige aanmelding (SSO)
Zie De juiste verificatiemethode kiezen voor uw hybride identiteitsoplossing van Azure Active Directory voor meer informatie over Azure AD verificatiemethoden en welke u moet kiezen.
Zie voor meer informatie over Azure AD hybride identiteiten, installatie en synchronisatie:
- Wachtwoord-hashverificatie: wachtwoord-hashsynchronisatie implementeren met Azure AD Connect-synchronisatie
- Passthrough-verificatie - Passthrough-verificatie van Azure Active Directory
- Federatieve verificatie: Active Directory Federation Services implementeren in Azure en Azure AD Connect en federatie
Een Azure AD-exemplaar maken en vullen
Maak een Azure AD-exemplaar en vul deze in met gebruikers en groepen. Azure AD kan het eerste Azure AD beheerde domein zijn. Azure AD kan ook een on-premises Active Directory Domain Services zijn die is gefedereerd met de Azure AD.
Zie voor meer informatie:
- Integrating your on-premises identities with Azure Active Directory (Engelstalig)
- Uw eigen domeinnaam toevoegen aan Azure AD
- Microsoft Azure ondersteunt nu federatie met Windows Server Active Directory
- Wat is Azure Active Directory?
- Azure AD beheren met Windows PowerShell
- Vereiste poorten en protocollen voor hybride identiteit.
Een Azure-abonnement aan Azure Active Directory koppelen of toevoegen
Koppel uw Azure-abonnement aan Azure Active Directory door van de directory een vertrouwde directory te maken voor het Azure-abonnement dat als host fungeert voor de database. Zie Een Azure-abonnement koppelen aan of toevoegen aan uw Azure Active Directory-tenant voor meer informatie.
Gebruik de mapwisselaar in de Azure Portal om over te schakelen naar het abonnement dat is gekoppeld aan het domein.
Belangrijk
Voor elk Azure-abonnement is er een vertrouwensrelatie met een Azure AD-exemplaar. Dit betekent dat er op die directory wordt vertrouwd voor het verifiëren van gebruikers, services en apparaten. Meerdere abonnementen kunnen dezelfde directory vertrouwen, maar een abonnement vertrouwt slechts één directory. De vertrouwensrelatie die een abonnement heeft met een directory is anders dan de relatie die een abonnement heeft met andere resources in Azure (websites, databases, enzovoort); deze resources lijken meer op onderliggende resources van een abonnement. Als een abonnement is verlopen, wordt toegang tot de andere resources die zijn gekoppeld aan het abonnement ook geblokkeerd. De directory blijft echter wel aanwezig in Azure, en u kunt er een ander abonnement aan koppelen om de directorygebruikers te blijven beheren. Zie Inzicht in resourcetoegang in Azure voor meer informatie over resources. Zie Een Azure-abonnement koppelen aan of toevoegen aan Azure Active Directory voor meer informatie over deze vertrouwde relatie.
Azure AD beheerder met een server in SQL Database
Elke server in Azure (die als host fungeert voor SQL Database of Azure Synapse) begint met één serverbeheerdersaccount dat de beheerder van de hele server is. Maak een tweede beheerdersaccount als een Azure AD-account. Deze principal wordt gemaakt als een ingesloten databasegebruiker in de master
database van de server. Beheerdersaccounts zijn leden van de rol db_owner in elke gebruikersdatabase en voeren elke gebruikersdatabase in als de dbo-gebruiker . Zie Databases en aanmeldingen beheren voor meer informatie over beheerdersaccounts.
Wanneer u Azure Active Directory gebruikt met geo-replicatie, moet de Azure Active Directory-beheerder worden geconfigureerd voor zowel de primaire als de secundaire servers. Als een server geen Azure Active Directory-beheerder heeft, ontvangen Azure Active Directory-aanmeldingen en gebruikers een Cannot connect
serverfout.
Notitie
Gebruikers die niet zijn gebaseerd op een Azure AD-account (met inbegrip van het serverbeheerdersaccount), kunnen geen gebruikers op basis van Azure AD maken, omdat ze niet gemachtigd zijn om voorgestelde databasegebruikers met de Azure AD te valideren.
Azure AD-beheerder inrichten (SQL Managed Instance)
Belangrijk
Volg deze stappen alleen als u een Azure SQL Managed Instance inricht. Deze bewerking kan alleen worden uitgevoerd door een globale beheerder of een beheerder met bevoorrechte rollen in Azure AD.
U kunt de rol Directory readers toewijzen aan een groep in Azure AD. De groepseigenaren kunnen vervolgens de identiteit van het beheerde exemplaar toevoegen als lid van deze groep, zodat u een Azure AD-beheerder kunt inrichten voor de SQL Managed Instance. Zie Rol Directory Readers in Azure Active Directory voor Azure SQL voor meer informatie over deze functie.
Uw SQL Managed Instance heeft machtigingen nodig om Azure AD te lezen om taken uit te voeren, zoals verificatie van gebruikers via lidmaatschap van beveiligingsgroepen of het maken van nieuwe gebruikers. Dit werkt alleen als u de SQL Managed Instance toestemming geeft om Azure AD te lezen. U kunt dit doen met behulp van de Azure Portal of PowerShell.
Azure Portal
Als u uw SQL Managed Instance Azure AD leesmachtiging wilt verlenen met behulp van de Azure Portal, meldt u zich aan als globale beheerder in Azure AD en voert u de volgende stappen uit:
Selecteer in de Azure Portal in de rechterbovenhoek uw account en kies vervolgens Schakelen tussen mappen om te bevestigen welke Active Directory momenteel uw Active Directory is. Schakelen tussen mappen, indien nodig.
Kies de juiste Active Directory als de standaard-Azure AD.
In deze stap wordt het abonnement gekoppeld aan Active Directory gekoppeld aan de SQL Managed Instance, zodat hetzelfde abonnement wordt gebruikt voor zowel het Azure AD-exemplaar als de SQL Managed Instance.
Navigeer naar de SQL Managed Instance die u wilt gebruiken voor Azure AD-integratie.
Selecteer de banner boven aan de pagina Active Directory-beheerder en ververleent machtigingen aan de huidige gebruiker.
Nadat de bewerking is voltooid, wordt de volgende melding weergegeven in de rechterbovenhoek:
U kunt nu uw Azure AD-beheerder kiezen voor uw SQL Managed Instance. Selecteer hiervoor op de pagina Active Directory-beheerder de optie Beheerdersopdracht instellen .
Zoek op de pagina Azure AD beheerder naar een gebruiker, selecteer de gebruiker of groep als beheerder en selecteer vervolgens Selecteren.
Op de pagina Active Directory-beheerder worden alle leden en groepen van uw Active Directory weergegeven. Gebruikers of groepen die grijs worden weergegeven, kunnen niet worden geselecteerd omdat ze niet worden ondersteund als Azure AD-beheerders. Bekijk de lijst met ondersteunde beheerders in Azure AD Functies en beperkingen. Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) is alleen van toepassing op de Azure Portal en wordt niet doorgegeven aan SQL Database, SQL Managed Instance of Azure Synapse.
Selecteer bovenaan de pagina Active Directory-beheerder de optie Opslaan.
Het wijzigen van de beheerder kan enkele minuten duren. Vervolgens wordt de nieuwe beheerder weergegeven in het vak Active Directory-beheerder.
Voor Azure AD gebruikers en groepen wordt de object-id weergegeven naast de naam van de beheerder. Voor toepassingen (service-principals) wordt de toepassings-id weergegeven.
Nadat u een Azure AD-beheerder voor uw SQL Managed Instance hebt ingericht, kunt u beginnen met het maken van Azure AD server-principals (aanmeldingen) met de syntaxis CREATE LOGIN. Zie overzicht van SQL Managed Instance voor meer informatie.
Tip
Als u een Beheer later wilt verwijderen, selecteert u bovenaan de pagina Active Directory-beheerder de optie Beheerder verwijderen en selecteert u vervolgens Opslaan.
PowerShell
Voer dit script uit om uw SQL Managed Instance Azure AD leesmachtiging te verlenen met behulp van PowerShell:
# 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 voor SQL Managed Instance
Als u PowerShell-cmdlets wilt uitvoeren, moet u Azure PowerShell hebben geïnstalleerd en uitgevoerd. Zie How to install and configure Azure PowerShell (Azure PowerShell installeren en configureren) voor gedetailleerde informatie.
Belangrijk
De PowerShell Azure Resource Manager (RM)-module wordt nog steeds ondersteund door Azure SQL Managed Instance, maar alle toekomstige ontwikkeling is voor de Az.Sql-module. De AzureRM-module blijft tot ten minste december 2020 bugfixes ontvangen. De argumenten voor de opdrachten in de Az-module en in de AzureRm-modules zijn vrijwel identiek. Zie Introductie van de nieuwe Az-module van Azure PowerShell voor meer informatie over de compatibiliteit van de argumenten.
Voer de volgende Azure PowerShell-opdrachten uit om een Azure AD-beheerder in te richten:
- Connect-AzAccount
- Select-AzSubscription
De cmdlets die worden gebruikt voor het inrichten en beheren van Azure AD-beheerder voor uw SQL Managed Instance worden vermeld in de volgende tabel:
Naam van cmdlet | Beschrijving |
---|---|
Set-AzSqlInstanceActiveDirectoryAdministrator | Richt een Azure AD-beheerder in voor de SQL Managed Instance in het huidige abonnement. (Moet afkomstig zijn van het huidige abonnement) |
Remove-AzSqlInstanceActiveDirectoryAdministrator | Hiermee verwijdert u een Azure AD-beheerder voor de SQL Managed Instance in het huidige abonnement. |
Get-AzSqlInstanceActiveDirectoryAdministrator | Retourneert informatie over een Azure AD-beheerder voor de SQL Managed Instance in het huidige abonnement. |
Met de volgende opdracht wordt informatie opgehaald over een Azure AD-beheerder voor een SQL Managed Instance met de naam ManagedInstance01 die is gekoppeld aan een resourcegroep met de naam ResourceGroup01.
Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01"
Met de volgende opdracht wordt een Azure AD beheerdersgroep met de naam DBA's voor de SQL Managed Instance managedInstance01. Deze server is gekoppeld aan resourcegroep ResourceGroup01.
Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01" -DisplayName "DBAs" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353b"
Met de volgende opdracht verwijdert u de Azure AD beheerder voor de SQL Managed Instance managedInstanceName01 die is gekoppeld aan de resourcegroep ResourceGroup01.
Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstanceName01" -Confirm -PassThru
Azure AD-beheerder inrichten (SQL Database)
Belangrijk
Volg deze stappen alleen als u een server inricht voor SQL Database of Azure Synapse.
De volgende twee procedures laten zien hoe u een Azure Active Directory-beheerder voor uw server inricht in de Azure Portal en met behulp van PowerShell.
Azure Portal
Ga naar de Azure-portal en selecteer in de rechterbovenhoek uw verbinding om een lijst met mogelijke Active Directories weer te geven. Kies de juiste Active Directory als de standaard-Azure AD. In deze stap wordt de aan het abonnement gekoppelde Active Directory gekoppeld aan de server om ervoor te zorgen dat hetzelfde abonnement wordt gebruikt voor zowel Azure AD als de server.
Zoek en selecteer SQL Server.
Notitie
Op deze pagina kunt u, voordat u SQL-servers selecteert, de star naast de naam selecteren om de categorie aan uw favorieten toe te voegen en SQL-servers toe te voegen aan de linkernavigatiebalk.
Selecteer Active Directory-beheerder op de pagina SQL Server.
Selecteer op de pagina Active Directory-beheerderde optie Beheerder instellen.
Zoek op de pagina Beheerder toevoegen een gebruiker. Selecteer de gebruiker of groep die beheerder moet zijn en selecteer Selecteren. (Op de pagina Active Directory-beheerder ziet u alle leden en groepen van uw Active Directory.) Gebruikers of groepen die grijs zijn gekleurd, kunnen niet worden geselecteerd omdat ze niet worden ondersteund als beheerders voor Azure AD. (Zie de lijst met ondersteunde beheerders in de sectie Azure AD Functies en beperkingen van Azure Active Directory-verificatie gebruiken voor verificatie met SQL Database of Azure Synapse.) Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) is alleen van toepassing op de portal en wordt niet doorgegeven aan SQL Server.
Selecteer bovenaan de pagina Active Directory-beheerder de optie Opslaan.
Voor Azure AD gebruikers en groepen wordt de object-id weergegeven naast de naam van de beheerder. Voor toepassingen (service-principals) wordt de toepassings-id weergegeven.
Het wijzigen van de beheerder kan enkele minuten duren. Vervolgens wordt de nieuwe beheerder weergegeven in het vak Active Directory-beheerder.
Notitie
Bij het instellen van de Azure AD-beheerder kan de naam van de nieuwe beheerder (gebruiker of groep) niet al aanwezig zijn in de virtuele master
database als serververificatiegebruiker. Indien wel aanwezig, mislukt het instellen van de Azure AD-beheerder, waarna het maken ervan wordt teruggedraaid en er wordt aangegeven dat deze beheerder (naam) al bestaat. Omdat een dergelijke serververificatiegebruiker geen deel uitmaakt van de Azure AD, mislukt elke poging om verbinding te maken met de server met behulp van Azure AD-verificatie.
Als u een Beheer later wilt verwijderen, selecteert u bovenaan de pagina Active Directory-beheerder de optie Beheerder verwijderen en selecteert u vervolgens Opslaan.
PowerShell voor SQL Database en Azure Synapse
Als u PowerShell-cmdlets wilt uitvoeren, moet u Azure PowerShell hebben geïnstalleerd en uitgevoerd. Zie How to install and configure Azure PowerShell (Azure PowerShell installeren en configureren) voor gedetailleerde informatie. Voer de volgende Azure PowerShell-opdrachten uit om een Azure AD-beheerder in te richten:
- Connect-AzAccount
- Select-AzSubscription
Cmdlets die worden gebruikt voor het inrichten en beheren van Azure AD-beheerder voor SQL Database en Azure Synapse:
Naam van cmdlet | Beschrijving |
---|---|
Set-AzSqlServerActiveDirectoryAdministrator | Richt een Azure Active Directory-beheerder in voor de server die als host fungeert voor SQL Database of Azure Synapse. (Moet afkomstig zijn van het huidige abonnement) |
Remove-AzSqlServerActiveDirectoryAdministrator | Hiermee verwijdert u een Azure Active Directory-beheerder voor de server die als host fungeert voor SQL Database of Azure Synapse. |
Get-AzSqlServerActiveDirectoryAdministrator | Retourneert informatie over een Azure Active Directory-beheerder die momenteel is geconfigureerd voor de server die als host fungeert voor SQL Database of Azure Synapse. |
Gebruik de PowerShell-opdracht get-help voor meer informatie voor elk van deze opdrachten. Bijvoorbeeld get-help Set-AzSqlServerActiveDirectoryAdministrator
.
Met het volgende script wordt een Azure AD-beheerdersgroep met de naam DBA_Group (object-id40b79501-b343-44ed-9ce7-da4c8cc7353f
) voor de demo_server-server in een resourcegroep met de naam Group-23:
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" -DisplayName "DBA_Group"
De invoerparameter DisplayName accepteert de Azure AD weergavenaam of de User Principal Name. Bijvoorbeeld DisplayName="John Smith"
en DisplayName="johns@contoso.com"
. Voor Azure AD groepen wordt alleen de Azure AD weergavenaam ondersteund.
Notitie
De opdracht Set-AzSqlServerActiveDirectoryAdministrator
Azure PowerShell voorkomt niet dat u Azure AD beheerders inricht voor niet-ondersteunde gebruikers. Een niet-ondersteunde gebruiker kan worden ingericht, maar kan geen verbinding maken met een database.
In het volgende voorbeeld wordt de optionele ObjectID gebruikt:
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" `
-DisplayName "DBA_Group" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353f"
Notitie
De Azure AD ObjectID is vereist wanneer de DisplayName niet uniek is. Als u de waarden ObjectID en DisplayName wilt ophalen, gebruikt u de sectie Active Directory van Klassieke Azure-portal en bekijkt u de eigenschappen van een gebruiker of groep.
Het volgende voorbeeld retourneert informatie over de huidige Azure AD-beheerder voor de server:
Get-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List
In het volgende voorbeeld wordt een Azure AD-beheerder verwijderd:
Remove-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"
Notitie
U kunt ook een Azure Active Directory-beheerder inrichten met behulp van de REST API's. Zie Service Management REST API Reference and Operations for Azure SQL Database Operations for Azure SQL Database (Service Management REST API Reference and Operations for Azure SQL Database Operations for Azure SQL Database) voor meer informatie
Uw clientcomputers configureren
Notitie
System.Data.SqlClient maakt gebruik van de Azure Active Directory Authentication Library (ADAL), die wordt afgeschaft. Als u de System.Data.SqlClient-naamruimte gebruikt voor Azure Active Directory-verificatie, migreert u toepassingen naar Microsoft.Data.SqlClient en de Microsoft Authentication Library (MSAL). Zie Azure Active Directory-verificatie gebruiken met SqlClient voor meer informatie over het gebruik van Azure AD-verificatie met SqlClient.
SSMS en SSDT maken nog steeds gebruik van de Azure Active Directory Authentication Library (ADAL). Als u ADAL.DLL in uw toepassingen wilt blijven gebruiken, kunt u de koppelingen in deze sectie gebruiken om het meest recente SSMS-, ODBC- en OLE DB-stuurprogramma te installeren dat de meest recente ADAL.DLL-bibliotheek bevat.
Op alle clientcomputers van waaruit uw toepassingen of gebruikers verbinding maken met SQL Database of Azure Synapse met behulp van Azure AD identiteiten, moet u de volgende software installeren:
- .NET Framework 4.6 of hoger van https://msdn.microsoft.com/library/5a4x27ek.aspx.
- Microsoft Authentication Library (MSAL) of Azure Active Directory Authentication Library voor SQL Server (ADAL.DLL). Hieronder vindt u de downloadkoppelingen voor het installeren van het meest recente SSMS-, ODBC- en OLE DB-stuurprogramma dat de ADAL.DLL-bibliotheek bevat.
U kunt aan deze vereisten voldoen door:
- Het installeren van de nieuwste versie van SQL Server Management Studio of SQL Server Data Tools voldoet aan de vereiste .NET Framework 4.6.
- SSMS installeert de x86-versie van ADAL.DLL.
- SSDT installeert de amd64-versie van ADAL.DLL.
- De nieuwste Visual Studio van Visual Studio Downloads voldoet aan de vereiste .NET Framework 4.6, maar installeert niet de vereiste amd64-versie van ADAL.DLL.
Ingesloten gebruikers maken die zijn toegewezen aan Azure AD-identiteiten
Omdat SQL Managed Instance ondersteuning biedt voor Azure AD server-principals (aanmeldingen), is het gebruik van ingesloten databasegebruikers niet vereist. Met Azure AD-serverprincipals (aanmeldingen) kunt u aanmeldingen maken van Azure AD-gebruikers, -groepen of -toepassingen. Dit betekent dat u zich kunt verifiëren met uw SQL Managed Instance met behulp van de Azure AD serveraanmelding in plaats van een ingesloten databasegebruiker. Zie overzicht van SQL Managed Instance voor meer informatie. Zie CREATE LOGIN (AANMELDING MAKEN) voor de syntaxis voor het maken van Azure AD-serverprincipals (aanmeldingen).
Voor het gebruik van Azure Active Directory-verificatie met SQL Database en Azure Synapse moet u echter ingesloten databasegebruikers gebruiken op basis van een Azure AD identiteit. Een ingesloten databasegebruiker heeft geen aanmelding in de master
database en wijst toe aan een identiteit in Azure AD die is gekoppeld aan de database. De Azure AD-identiteit kan een individueel gebruikersaccount of een groep zijn. Zie Contained Database Users- Making Your Database Portable (Gebruikers van ingesloten databases: een draagbare database maken) voor meer informatie over gebruikers van ingesloten databases.
Notitie
Databasegebruikers kunnen niet in de Azure-portal worden gemaakt (met uitzondering van beheerders). Azure-rollen worden niet doorgegeven aan de database in SQL Database, de SQL Managed Instance of Azure Synapse. Azure-rollen worden gebruikt voor het beheren van Azure-resources en zijn niet van toepassing op databasemachtigingen. De rol SQL Server Inzender verleent bijvoorbeeld geen toegang om verbinding te maken met de database in SQL Database, de SQL Managed Instance of Azure Synapse. De toestemming tot het verlenen van toegang moet rechtstreeks plaatsvinden in de database met behulp van Transact-SQL-instructies.
Waarschuwing
Speciale tekens, zoals dubbele punt :
of ampersand&
, worden niet ondersteund als gebruikersnamen in de T-SQL-instructiesCREATE LOGIN
.CREATE USER
Belangrijk
Azure AD gebruikers en service-principals (Azure AD toepassingen) die lid zijn van meer dan 2048 Azure AD beveiligingsgroepen, worden niet ondersteund om zich aan te melden bij de database in SQL Database, SQL Managed Instance of Azure Synapse.
Als u een op Azure AD gebaseerde ingesloten databasegebruiker wilt maken (anders dan de serverbeheerder die eigenaar is van de database), maakt u verbinding met de database met een Azure AD identiteit, als gebruiker met ten minste de machtiging ALTER ANY USER. Gebruik vervolgens de volgende Transact-SQL-syntaxis:
CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
Azure_AD_principal_name kan de user principal name van een Azure AD gebruiker of de weergavenaam voor een Azure AD groep zijn.
Voorbeelden: Een ingesloten databasegebruiker maken die een Azure AD federatieve of beheerde domeingebruiker vertegenwoordigt:
CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;
Als u een ingesloten databasegebruiker wilt maken die een Azure AD of federatieve domeingroep vertegenwoordigt, geeft u de weergavenaam van een beveiligingsgroep op:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Een ingesloten databasegebruiker maken die een toepassing vertegenwoordigt die verbinding maakt met behulp van een Azure AD-token:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
Notitie
Voor deze opdracht is vereist dat SQL-toegang Azure AD (de 'externe provider') namens de aangemelde gebruiker. Soms doen zich omstandigheden voor die ervoor zorgen dat Azure AD een uitzondering terugstuurt naar SQL. In deze gevallen ziet de gebruiker SQL-fout 33134, die het Azure AD-specifieke foutbericht moet bevatten. Meestal wordt in de fout aangegeven dat de toegang is geweigerd, dat de gebruiker zich moet inschrijven bij MFA om toegang te krijgen tot de resource, of dat toegang tussen toepassingen van de eerste partij moet worden afgehandeld via verificatie vooraf. In de eerste twee gevallen wordt het probleem meestal veroorzaakt door beleid voor voorwaardelijke toegang dat is ingesteld in de Azure AD-tenant van de gebruiker: deze verhinderen dat de gebruiker toegang heeft tot de externe provider. Als u het beleid voor voorwaardelijke toegang bijwerkt om toegang tot de toepassing '00000003-0000-0000-c000-00000000000' (de toepassings-id van de Microsoft Graph API) toe te staan, moet het probleem worden opgelost. In het geval dat de fout zegt dat toegang tussen eigen toepassingen moet worden afgehandeld via verificatie vooraf, komt het probleem doordat de gebruiker is aangemeld als een service-principal. De opdracht moet slagen als deze in plaats daarvan wordt uitgevoerd door een gebruiker.
Tip
U kunt niet rechtstreeks een gebruiker maken vanuit een andere Azure Active Directory dan de Azure Active Directory die is gekoppeld aan uw Azure-abonnement. Leden van andere Active Directory's die geïmporteerde gebruikers zijn in de gekoppelde Active Directory (ook wel externe gebruikers genoemd), kunnen echter worden toegevoegd aan een Active Directory-groep in de Tenant Active Directory. Door een ingesloten databasegebruiker voor die AD-groep te maken, kunnen de gebruikers van de externe Active Directory toegang krijgen tot SQL Database.
Zie CREATE USER (Transact-SQL) voor meer informatie over het maken van ingesloten databasegebruikers op basis van Azure Active Directory-identiteiten.
Notitie
Als u de Azure Active Directory-beheerder voor de server verwijdert, voorkomt u dat Azure AD verificatiegebruiker verbinding kan maken met de server. Indien nodig kunnen onbruikbare Azure AD gebruikers handmatig worden verwijderd door een SQL Database-beheerder.
Notitie
Als u een time-out voor de verbinding verlopen ontvangt, moet u mogelijk de TransparentNetworkIPResolution
parameter van de connection string instellen op false. Zie Verbindingstime-outprobleem met .NET Framework 4.6.1 - TransparentNetworkIPResolution voor meer informatie.
Wanneer u een databasegebruiker maakt, ontvangt die gebruiker de machtiging VERBINDEN en kan deze verbinding maken met die database als lid van de rol PUBLIC . In eerste instantie zijn de enige machtigingen die beschikbaar zijn voor de gebruiker alle machtigingen die zijn verleend aan de rol OPENBAAR of machtigingen die zijn verleend aan Azure AD groepen waarvan ze lid zijn. Zodra u een ingesloten databasegebruiker op basis van Azure AD hebt ingericht, kunt u de gebruiker aanvullende machtigingen verlenen, op dezelfde manier als u machtigingen verleent aan elk ander type gebruiker. Doorgaans verleent u machtigingen aan databaserollen en voegt u gebruikers toe aan rollen. Zie Database Engine Permission Basics (Basisbeginselen van machtigingen voor database-engine) voor meer informatie. Zie Databases en aanmeldingen beheren in Azure SQL Database voor meer informatie over speciale SQL Database rollen. Een federatief domeingebruikersaccount dat als externe gebruiker in een beheerd domein wordt geïmporteerd, moet de beheerde domeinidentiteit gebruiken.
Notitie
Azure AD-gebruikers worden in de metagegevens van de database gemarkeerd met het type E (EXTERNAL_USER) en voor groepen met het type X (EXTERNAL_GROUPS). Zie sys.database_principals voor meer informatie.
Verbinding maken met de database met behulp van SSMS of SSDT
Als u wilt controleren of de Azure AD beheerder juist is ingesteld, maakt u verbinding met de master
database met behulp van het Azure AD administrator-account.
Als u een ingesloten databasegebruiker op basis van Azure AD wilt inrichten (anders dan de serverbeheerder die eigenaar is van de database), maakt u verbinding met de database met een Azure AD identiteit die toegang heeft tot de database.
Belangrijk
Ondersteuning voor Azure Active Directory-verificatie is vanaf 2016 en SQL Server Data Tools vanaf 2015 beschikbaar bij SQL Server Management Studio (SSMS). De release van augustus 2016 van SSMS bevat ook ondersteuning voor Active Directory Universal Authentication, waarmee beheerders Multi-Factor Authentication kunnen vereisen met behulp van een telefoongesprek, sms-bericht, smartcards met pincode of mobiele app-melding.
Een Azure AD-identiteit gebruiken om verbinding te maken met behulp van SSMS of SSDT
De volgende procedures laten zien hoe u verbinding kunt maken met SQL Database met een Azure AD-identiteit met behulp van SQL Server Management Studio of SQL Server Database Tools.
Geïntegreerde Active Directory-verificatie
Gebruik deze methode als u bent aangemeld bij Windows met behulp van uw Azure Active Directory-referenties van een federatief domein of een beheerd domein dat is geconfigureerd voor naadloze eenmalige aanmelding voor passthrough- en wachtwoord-hashverificatie. Zie Naadloze eenmalige aanmelding via Azure Active Directory voor meer informatie.
Start Management Studio of Data Tools en selecteer in het dialoogvenster Verbinding maken met server (of Verbinding maken met database-engine) in het vak Verificatie de optie Azure Active Directory - Geïntegreerd. Er is geen wachtwoord nodig of kan worden ingevoerd omdat uw bestaande referenties voor de verbinding worden weergegeven.
Selecteer de knop Opties en typ op de pagina Verbindingseigenschappen in het vak Verbinding maken met database de naam van de gebruikersdatabase waarmee u verbinding wilt maken. Zie het artikel Multi-factor Azure AD auth over de verschillen tussen de verbindingseigenschappen voor SSMS 17.x en 18.x voor meer informatie.
Active Directory-wachtwoordverificatie
Gebruik deze methode wanneer u verbinding maakt met een Azure AD principal-naam met behulp van het Azure AD beheerde domein. U kunt het ook gebruiken voor federatieve accounts zonder toegang tot het domein, bijvoorbeeld wanneer u op afstand werkt.
Gebruik deze methode om te verifiëren bij de database in SQL Database of de SQL Managed Instance met Azure AD cloudidentiteitsgebruikers of degenen die gebruikmaken van Azure AD hybride identiteiten. Deze methode ondersteunt gebruikers die hun Windows-referenties willen gebruiken, maar hun lokale computer niet is gekoppeld aan het domein (bijvoorbeeld via externe toegang). In dit geval kan een Windows-gebruiker zijn of haar domeinaccount en wachtwoord opgeven en zich verifiëren bij de database in SQL Database, de SQL Managed Instance of Azure Synapse.
Start Management Studio of Data Tools en selecteer in het dialoogvenster Verbinding maken met server (of Verbinding maken met database-engine) in het vak Verificatie de optie Azure Active Directory - Wachtwoord.
Typ in het vak Gebruikersnaam uw Azure Active Directory-gebruikersnaam in de indeling username@domain.com. Gebruikersnamen moeten een account zijn van Azure Active Directory of een account van een beheerd of federatief domein met Azure Active Directory.
Typ in het vak Wachtwoord uw gebruikerswachtwoord voor het Azure Active Directory-account of het beheerde/federatieve domeinaccount.
Selecteer de knop Opties en typ op de pagina Verbindingseigenschappen in het vak Verbinding maken met database de naam van de gebruikersdatabase waarmee u verbinding wilt maken. (Zie de afbeelding in de vorige optie.)
Interactieve Active Directory-verificatie
Gebruik deze methode voor interactieve verificatie met of zonder Multi-Factor Authentication (MFA), waarbij een wachtwoord interactief wordt aangevraagd. Deze methode kan worden gebruikt voor verificatie bij de database in SQL Database, de SQL Managed Instance en Azure Synapse voor Azure AD cloudidentiteitsgebruikers of gebruikers die Azure AD hybride identiteiten gebruiken.
Zie Meervoudige Azure AD-verificatie gebruiken met SQL Database en Azure Synapse (SSMS-ondersteuning voor MFA) voor meer informatie.
Een Azure AD-identiteit gebruiken om verbinding te maken vanuit een clienttoepassing
De volgende procedures laten zien hoe u vanuit een clienttoepassing verbinding maakt met een SQL Database met een Azure AD-identiteit.
Geïntegreerde Active Directory-verificatie
Als u geïntegreerde Windows-verificatie wilt gebruiken, moet de Active Directory van uw domein federatief zijn met Azure Active Directory of moet het een beheerd domein zijn dat is geconfigureerd voor naadloze eenmalige aanmelding voor passthrough- of wachtwoord-hashverificatie. Zie Naadloze eenmalige aanmelding via Azure Active Directory voor meer informatie.
Uw clienttoepassing (of een service) die verbinding maakt met de database, moet worden uitgevoerd op een computer die lid is van een domein onder de domeinreferenties van een gebruiker.
Als u verbinding wilt maken met een database met behulp van geïntegreerde verificatie en een Azure AD-identiteit, moet het trefwoord Verificatie in de database-connection string worden ingesteld op Active Directory Integrated
. In het volgende C#-codevoorbeeld wordt ADO .NET gebruikt.
string ConnectionString = @"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
Het trefwoord Integrated Security=True
connection string wordt niet ondersteund voor het maken van verbinding met Azure SQL Database. Wanneer u een ODBC-verbinding maakt, moet u spaties verwijderen en Verificatie instellen op 'ActiveDirectoryIntegrated'.
Active Directory-wachtwoordverificatie
Als u verbinding wilt maken met een database met behulp van Azure AD cloudgebruikersaccounts voor identiteiten of gebruikers die gebruikmaken van Azure AD hybride identiteiten, moet het trefwoord Verificatie worden ingesteld op Active Directory Password
. De connection string moet trefwoorden en -waarden voor gebruikers-id/UID en Wachtwoord/PWD bevatten. In het volgende C#-codevoorbeeld wordt ADO .NET gebruikt.
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();
Meer informatie over Azure AD verificatiemethoden met behulp van de democodevoorbeelden die beschikbaar zijn op Azure AD Verificatie GitHub Demo.
Azure AD-token
Met deze verificatiemethode kunnen services van de middelste laag JSON-webtokens (JWT) verkrijgen om verbinding te maken met de database in SQL Database, de SQL Managed Instance of Azure Synapse door een token te verkrijgen van Azure AD. Deze methode maakt verschillende toepassingsscenario's mogelijk, waaronder service-id's, service-principals en toepassingen die gebruikmaken van verificatie op basis van certificaten. U moet vier basisstappen uitvoeren om Azure AD-tokenverificatie te gebruiken:
- Registreer uw toepassing bij Azure Active Directory en haal de client-id voor uw code op.
- Maak een databasegebruiker die de toepassing vertegenwoordigt. (Eerder voltooid in stap 6.)
- Maak een certificaat op de clientcomputer waarop de toepassing wordt uitgevoerd.
- Voeg het certificaat toe als een sleutel voor uw toepassing.
Voorbeeld connection string:
string ConnectionString = @"Data Source=n9lxnyuzhv.database.windows.net; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.AccessToken = "Your JWT token";
conn.Open();
Zie SQL Server Beveiligingsblog voor meer informatie. Zie Aan de slag met verificatie op basis van certificaten in Azure Active Directory voor meer informatie over het toevoegen van een certificaat.
sqlcmd
De volgende instructies, verbinding maken met behulp van versie 13.1 van sqlcmd, die beschikbaar is via het Downloadcentrum.
Notitie
sqlcmd
met de -G
opdracht werkt niet met systeemidentiteiten en vereist een user principal-aanmelding.
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
Problemen met Azure AD-verificatie oplossen
Richtlijnen voor het oplossen van problemen met Azure AD-verificatie vindt u in de volgende blog:https://techcommunity.microsoft.com/t5/azure-sql-database/troubleshooting-problems-related-to-azure-ad-authentication-with/ba-p/1062991
Volgende stappen
- Zie Aanmeldingen, gebruikers, databaserollen en gebruikersaccounts voor een overzicht van aanmeldingen, gebruikers, databaserollen en machtigingen in SQL Database.
- Zie Principals voor meer informatie over database-principals.
- Zie Databaserollen voor meer informatie over databaserollen.
- Zie SQL Database-firewallregels voor meer informatie over de firewallregels in SQL Database.
- Zie Azure AD gastgebruikers maken en instellen als Azure AD-beheerder voor meer informatie over het instellen van een Azure AD gastgebruiker als de Azure AD-beheerder.
- Zie Create Azure AD users using Azure AD applications (Gebruikers Azure AD maken met Azure AD-toepassingen) voor meer informatie over het gebruik van service-principals met Azure SQL