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 een 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.

Azure AD verificatiemethoden

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)
      • Azure AD wachtwoord-hashverificatie
      • passthrough-verificatie Azure AD
    • Federatieve verificatie

Zie De juiste verificatiemethode kiezen voor uw Azure Active Directory hybride identiteitsoplossing voor meer informatie over Azure AD verificatiemethoden en welke methode u moet kiezen.

Zie voor meer informatie over Azure AD hybride identiteiten, installatie en synchronisatie:

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:

Een Azure-abonnement aan Azure Active Directory koppelen of toevoegen

  1. Koppel uw Azure-abonnement aan Azure Active Directory door de map een vertrouwde directory te maken voor het Azure-abonnement dat als host fungeert voor de database. Zie Een Azure-abonnement aan uw Azure Active Directory-tenant koppelen of toevoegen voor meer informatie.

  2. Gebruik de directorywisselaar 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 hoofddatabase van de server. Beheerdersaccounts zijn lid van de db_owner rol in elke gebruikersdatabase en voeren elke gebruikersdatabase in als 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 (inclusief het serverbeheerdersaccount) kunnen geen Azure AD-gebaseerde gebruikers 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 globale beheerder of beheerder met bevoorrechte rollen in Azure AD.

In de openbare preview kunt u de rol Adreslijstlezers 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 zoals verificatie van gebruikers te kunnen uitvoeren via lidmaatschap van beveiligingsgroepen of het maken van nieuwe gebruikers. Dit werkt alleen als u de SQL Managed Instance toestemming verleent 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:

  1. 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. Schakel indien nodig tussen mappen.

    Screenshot of the Azure portal showing where to switch your directory

  2. Kies de juiste Active Directory als de standaard-Azure AD.

    Met deze stap wordt het abonnement dat is 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.

  3. Navigeer naar de SQL Managed Instance die u wilt gebruiken voor Azure AD integratie.

    Screenshot of the Azure portal showing the Active Directory admin page open for the selected SQL managed instance.

  4. Selecteer de banner boven op de Active Directory-beheerpagina en verdeel machtigingen aan de huidige gebruiker.

    Screenshot of the dialog for granting permissions to a SQL managed instance for accessing Active Directory. The Grant permissions button is selected.

  5. Nadat de bewerking is voltooid, wordt de volgende melding weergegeven in de rechterbovenhoek:

    Screenshot of a notification confirming that active directory read permissions have been successfully updated for the managed instance.

  6. U kunt nu uw Azure AD-beheerder voor uw SQL Managed Instance kiezen. Hiervoor selecteert u op de active Directory-beheerpagina de opdracht Beheerder instellen .

    Screenshot showing the Set admin command highlighted on the Active Directory admin page for the selected SQL managed instance.

  7. Zoek op de Azure AD beheerpagina naar een gebruiker, selecteer de gebruiker of groep als beheerder en selecteer vervolgens Selecteren.

    Op de active Directory-beheerpagina 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.

    Add Azure Active Directory admin

  8. Selecteer bovenaan de pagina Active Directory-beheerder de optie Opslaan.

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

    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 SQL Managed Instance overzicht voor meer informatie.

Tip

Als u een beheerder later wilt verwijderen, selecteert u boven aan de Active Directory-beheerpagina de optie Beheerder verwijderen en selecteert u 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 geïnstalleerd en uitgevoerd. Zie How to install and configure Azure PowerShell (Azure PowerShell installeren en configureren) voor gedetailleerde informatie.

Belangrijk

De Module PowerShell Azure Resource Manager (RM) 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.

Als u een Azure AD-beheerder wilt inrichten, voert u de volgende Azure PowerShell opdrachten uit:

  • Connect-AzAccount
  • Select-AzSubscription

De cmdlets die worden gebruikt voor het inrichten en beheren van Azure AD beheerder voor uw SQL Managed Instance worden weergegeven in de volgende tabel:

Naam van cmdlet Description
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 administratorgroep met de naam DBA's voor de SQL Managed Instance managedInstance01 ingesteld. 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.

In de volgende twee procedures ziet u hoe u een Azure Active Directory-beheerder voor uw server inricht in de Azure Portal en met behulp van PowerShell.

Azure Portal

  1. 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. Met 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.

  2. Zoek en selecteer SQL server.

    Search for and select SQL servers

    Notitie

    Voordat u op deze pagina SQL servers selecteert, kunt u de ster naast de naam selecteren om de categorie aan uw favorieten toe te voegen en SQL servers aan de linkernavigatiebalk toe te voegen.

  3. Selecteer Active Directory-beheerder op de pagina SQL Server.

  4. Selecteer Beheerder instellen op de pagina Active Directory-beheerder.

    SQL servers set Active Directory admin

  5. 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 het gedeelte Azure AD Functies en beperkingen van het gebruik Azure Active Directory Verificatie 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.

    Select Azure Active Directory admin

  6. Selecteer bovenaan de pagina Active Directory-beheerder de optie Opslaan.

    save admin

    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 nieuwe beheerdersnaam (gebruiker of groep) niet al aanwezig zijn in de virtuele hoofddatabase 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 beheerder later wilt verwijderen, selecteert u boven aan de Active Directory-beheerpagina de optie Beheerder verwijderen en selecteert u Opslaan.

PowerShell voor SQL Database en Azure Synapse

Als u PowerShell-cmdlets wilt uitvoeren, moet u Azure PowerShell geïnstalleerd en uitgevoerd. Zie How to install and configure Azure PowerShell (Azure PowerShell installeren en configureren) voor gedetailleerde informatie. Als u een Azure AD-beheerder wilt inrichten, voert u de volgende Azure PowerShell opdrachten uit:

  • 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 Description
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 om meer informatie te zien voor elk van deze opdrachten. Bijvoorbeeld get-help Set-AzSqlServerActiveDirectoryAdministrator.

Met het volgende script wordt een Azure AD administratorgroep met de naam DBA_Group (object-id40b79501-b343-44ed-9ce7-da4c8cc7353f) voor de demo_server-server in een resourcegroep met de naam Groep-23 ingesteld:

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 weergavenaam Azure AD ondersteund.

Notitie

Met de opdracht Set-AzSqlServerActiveDirectoryAdministrator Azure PowerShell kunt u niet voorkomen 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.

In het volgende voorbeeld wordt informatie geretourneerd 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

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 voor Azure Active Directory-verificatie gebruikt, 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 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:

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 kunt verifiëren met uw SQL Managed Instance met behulp van de Azure AD serveraanmelding in plaats van een ingesloten databasegebruiker. Zie SQL Managed Instance overzicht voor meer informatie. Zie CREATE LOGIN voor syntaxis voor het maken van Azure AD server-principals (aanmeldingen).

Het gebruik van Azure Active Directory verificatie met SQL Database en Azure Synapse vereist echter het gebruik van ingesloten databasegebruikers op basis van een Azure AD-identiteit. Een ingesloten databasegebruiker heeft geen aanmelding in de hoofddatabase en wordt toegewezen 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 & wanneer deze worden opgenomen als gebruikersnamen in de T-SQL CREATE LOGIN en CREATE USER instructies, worden niet ondersteund.

Belangrijk

Azure AD gebruikers en service-principals (Azure AD toepassingen) die lid zijn van meer dan 2048 Azure AD beveiligingsgroepen, worden niet ondersteund om u aan te melden bij de database in SQL Database, Beheerd exemplaar of Azure Synapse.

Als u een op Azure AD gebaseerde ingesloten databasegebruiker wilt maken (behalve 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 zijn van een Azure AD gebruiker of de weergavenaam voor een Azure AD groep.

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

Deze opdracht vereist dat SQL toegang Azure AD (de 'externe provider') namens de aangemelde gebruiker. Soms ontstaan er omstandigheden waardoor 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 wordt geweigerd of dat de gebruiker zich moet inschrijven bij MFA om toegang te krijgen tot de resource, of dat de toegang tussen toepassingen van derden 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: ze voorkomen 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-c0000-0000000000' (de toepassings-id van de Microsoft Graph API) toe te staan, moet het probleem worden opgelost. In het geval dat de fout aangeeft dat toegang tussen toepassingen van derden moet worden verwerkt via verificatie vooraf, is het probleem omdat 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 geen gebruiker rechtstreeks maken op basis van 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 uit 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 maakt 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 hebt ontvangen, moet u mogelijk de TransparentNetworkIPResolution parameter van de connection string instellen op false. Zie het probleem met verbindingstime-out met .NET Framework 4.6.1 - TransparentNetworkIPResolution voor meer informatie.

Wanneer u een databasegebruiker maakt, ontvangt die gebruiker de machtiging CONNECT 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 openbare rol, of machtigingen die zijn verleend aan Azure AD groepen waarvan ze lid zijn. Zodra u een op Azure AD gebaseerde ingesloten databasegebruiker hebt ingericht, kunt u de gebruiker aanvullende machtigingen verlenen, op dezelfde manier als u machtigingen verleent aan elk ander type gebruiker. Verleent doorgaans machtigingen aan databaserollen en voeg gebruikers toe aan rollen. Zie Basisprincipes van database-enginemachtigingen 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 naar 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 hoofddatabase met behulp van het Azure AD-beheerdersaccount. Als u een op Azure AD gebaseerde ingesloten databasegebruiker wilt inrichten (behalve 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 beschikbaar met SQL Server Management Studio (SSMS) vanaf 2016 en SQL Server Data Tools vanaf 2015. De release van augustus 2016 van SSMS bevat ook ondersteuning voor universele Active Directory-verificatie, 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 maakt 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 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.

  1. Start Management Studio of Hulpprogramma's voor gegevens en selecteer in het dialoogvenster Verbinding maken naar server (of Verbinding maken naar database-engine) in het vak VerificatieAzure Active Directory - Geïntegreerd. Er is geen wachtwoord nodig of kan worden ingevoerd omdat uw bestaande referenties worden weergegeven voor de verbinding.

    Select AD Integrated Authentication

  2. Selecteer de knop Opties en typ op de pagina Verbindingseigenschappen in het vak Verbinding maken naar database de naam van de gebruikersdatabase waarmee u verbinding wilt maken. Zie het artikel Multi-Factor Azure AD verificatie over de verschillen tussen de verbindingseigenschappen voor SSMS 17.x en 18.x voor meer informatie.

    Select the database name

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 gebruikers van identiteiten in de cloud of gebruikers die gebruikmaken van Azure AD hybride identiteiten. Deze methode ondersteunt gebruikers die hun Windows referentie willen gebruiken, maar hun lokale computer is niet gekoppeld aan het domein (bijvoorbeeld via externe toegang). In dit geval kan een Windows gebruiker zijn of haar domeinaccount en wachtwoord aangeven en kan deze verifiëren bij de database in SQL Database, het SQL Managed Instance of Azure Synapse.

  1. Start Management Studio of Hulpprogramma's voor gegevens en selecteer in het dialoogvenster Verbinding maken server (of Verbinding maken naar database-engine) in het vak VerificatieAzure Active Directory - Wachtwoord.

  2. Typ in het vak Gebruikersnaam uw Azure Active Directory gebruikersnaam in de notatieusername@domain.com. Gebruikersnamen moeten een account zijn van Azure Active Directory of een account uit een beheerd of federatief domein met Azure Active Directory.

  3. Typ in het vak Wachtwoord uw gebruikerswachtwoord voor het Azure Active Directory-account of het beheerde/federatieve domeinaccount.

    Select AD Password Authentication

  4. 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 het wachtwoord interactief wordt aangevraagd. Deze methode kan worden gebruikt om te verifiëren bij de database in SQL Database, de SQL Managed Instance en Azure Synapse voor Azure AD gebruikers van identiteiten in de cloud, of voor gebruikers die Azure AD hybride identiteiten gebruiken.

Zie Multi-Factor 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

In de volgende procedures ziet u 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 Active Directory van uw domein worden gefedereerd 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 zijn ingesteld opActive 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 gebruikersaccounts voor identiteiten in de cloud of gebruikers die Azure AD hybride identiteiten gebruiken, moet het trefwoord Verificatie worden ingesteld op Active Directory Password. De connection string moet gebruikers-id/UID en wachtwoord/PWD-trefwoorden en -waarden 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 Authentication GitHub Demo.

Azure AD token

Met deze verificatiemethode kunnen services in de middelste laag JSON-webtokens (JWT) verbinding maken met de database in SQL Database, de SQL Managed Instance of Azure Synapse door een token van Azure AD te verkrijgen. Deze methode maakt verschillende toepassingsscenario's mogelijk, waaronder service-id's, service-principals en toepassingen met behulp van verificatie op basis van certificaten. U moet vier basisstappen uitvoeren om Azure AD tokenverificatie te gebruiken:

  1. Registreer uw toepassing bij Azure Active Directory en haal de client-id voor uw code op.
  2. Maak een databasegebruiker die de toepassing vertegenwoordigt. (Eerder in stap 6 voltooid.)
  3. Maak een certificaat op de clientcomputer waarop de toepassing wordt uitgevoerd.
  4. Voeg het certificaat toe als 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 Security Blog voor meer informatie. Zie Aan de slag met verificatie op basis van certificaten in Azure Active Directory voor informatie over het toevoegen van een certificaat.

sqlcmd

De volgende instructies maken verbinding met versie 13.1 van sqlcmd, die beschikbaar is via het Downloadcentrum.

Notitie

sqlcmd met de -G opdracht werkt niet met systeemidentiteiten en vereist een gebruikersprincipaalaanmelding.

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