Configurare e gestire l'autenticazione ad Azure AD con Azure SQLConfigure and manage Azure AD authentication with Azure SQL

SI APPLICA A: Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics

Questo articolo illustra come creare e popolare un'istanza di Azure Active Directory (Azure AD) e quindi usare Azure AD con database SQL di Azure, Istanza gestita di SQL di Azuree Azure Synapse Analytics.This article shows you how to create and populate an Azure Active Directory (Azure AD) instance, and then use Azure AD with Azure SQL Database, Azure SQL Managed Instance, and Azure Synapse Analytics. Per una panoramica, vedere l'Azure Active Directory autenticazione .For an overview, see Azure Active Directory authentication.

Metodi di autenticazione di Azure ADAzure AD authentication methods

Azure AD'autenticazione supporta i metodi di autenticazione seguenti:Azure AD authentication supports the following authentication methods:

  • Identità Azure AD solo cloudAzure AD cloud-only identities
  • Azure AD identità ibride che supportano:Azure AD hybrid identities that support:
    • Autenticazione cloud con due opzioni abbinate all'accesso Single Sign-On facile (SSO)Cloud authentication with two options coupled with seamless single sign-on (SSO)
      • Azure AD dell'hash delle passwordAzure AD password hash authentication
      • Azure AD'autenticazione pass-throughAzure AD pass-through authentication
    • Autenticazione federataFederated authentication

Per altre informazioni sui Azure AD di autenticazione e su quale scegliere, vedere Scegliere il metodo di autenticazione appropriato per la soluzione di Azure Active Directory di identità ibrida.For more information on Azure AD authentication methods, and which one to choose, see Choose the right authentication method for your Azure Active Directory hybrid identity solution.

Per altre informazioni su Azure AD identità ibride, sulla configurazione e sulla sincronizzazione, vedere:For more information on Azure AD hybrid identities, setup, and synchronization, see:

Creare e popolare un'istanza Azure AD datiCreate and populate an Azure AD instance

Creare un'Azure AD e popolarla con utenti e gruppi.Create an Azure AD instance and populate it with users and groups. Azure AD può essere il dominio gestito di Azure AD iniziale.Azure AD can be the initial Azure AD managed domain. Azure AD può anche essere un set di servizi di dominio Active Directory locali federato con Azure AD.Azure AD can also be an on-premises Active Directory Domain Services that is federated with the Azure AD.

Per altre informazioni, consultare Integrazione delle identità locali con Azure Active Directory, Aggiungere un nome di dominio personalizzato ad Azure AD, Windows Azure now supports federation with Windows Server Active Directory (Nuovo supporto per la federazione con Active Directory di Windows Server in Windows Azure), Amministrazione della directory di Azure AD e Gestire Azure AD con Windows PowerShell e Porte e protocolli necessari per la soluzione ibrida di gestione delle identità.For more information, see Integrating your on-premises identities with Azure Active Directory, Add your own domain name to Azure AD, Microsoft Azure now supports federation with Windows Server Active Directory, Administering your Azure AD directory, Manage Azure AD using Windows PowerShell, and Hybrid Identity Required Ports and Protocols.

Associare o aggiungere una sottoscrizione di Azure ad Azure Active DirectoryAssociate or add an Azure subscription to Azure Active Directory

  1. Associare la sottoscrizione di Azure ad Azure Active Directory impostando la directory come directory attendibile per la sottoscrizione di Azure che ospita il database.Associate your Azure subscription to Azure Active Directory by making the directory a trusted directory for the Azure subscription hosting the database. Per informazioni dettagliate, vedere Associare o aggiungere una sottoscrizione di Azure al tenant Azure Active Directory.For details, see Associate or add an Azure subscription to your Azure Active Directory tenant.

  2. Usare il controllo per cambiare directory nel portale di Azure per passare alla sottoscrizione associata al dominio.Use the directory switcher in the Azure portal to switch to the subscription associated with domain.

    Importante

    Ogni sottoscrizione di Azure ha una relazione di trust con un'istanza di Azure AD.Every Azure subscription has a trust relationship with an Azure AD instance. Ciò significa che considera attendibile quella directory per l'autenticazione di utenti, servizi e dispositivi.This means that it trusts that directory to authenticate users, services, and devices. Più sottoscrizioni possono considerare attendibile la stessa directory, ma una sottoscrizione considera attendibile una sola directory.Multiple subscriptions can trust the same directory, but a subscription trusts only one directory. Questa relazione di trust tra la sottoscrizione e la directory è diversa dalla relazione tra la sottoscrizione e tutte le altre risorse in Azure, ad esempio siti Web, database e così via, le quali sono da considerarsi più come risorse figlio di una sottoscrizione.This trust relationship that a subscription has with a directory is unlike the relationship that a subscription has with all other resources in Azure (websites, databases, and so on), which are more like child resources of a subscription. Se la sottoscrizione scade, non sarà più possibile accedere a tutte queste altre risorse associate alla sottoscrizioneIf a subscription expires, then access to those other resources associated with the subscription also stops. anche se la directory rimane in Azure, quindi sarà possibile associarvi un'altra sottoscrizione e continuare a gestire gli utenti della directory.But the directory remains in Azure, and you can associate another subscription with that directory and continue to manage the directory users. Per altre informazioni sulle risorse, vedere Informazioni sull'accesso alle risorse di Azure.For more information about resources, see Understanding resource access in Azure. Per altre informazioni su questa relazione attendibile, vedere Associare o aggiungere una sottoscrizione di Azure ad Azure Active Directory.To learn more about this trusted relationship see How to associate or add an Azure subscription to Azure Active Directory.

Azure AD amministratore con un server nel database SQLAzure AD admin with a server in SQL Database

Ogni server in Azure (che ospita il database SQL o Azure Synapse) inizia con un singolo account amministratore del server che è l'amministratore dell'intero server.Each server in Azure (which hosts SQL Database or Azure Synapse) starts with a single server administrator account that is the administrator of the entire server. Creare un secondo account amministratore come account Azure AD locale.Create a second administrator account as an Azure AD account. Questa entità viene creata come utente di database indipendente nel database master del server.This principal is created as a contained database user in the master database of the server. Gli account amministratore sono membri del ruolo db_owner in ogni database utente e immettono ogni database utente come utente dbo.Administrator accounts are members of the db_owner role in every user database, and enter each user database as the dbo user. Per altre informazioni sugli account amministratore, vedere Gestione di database e account di accesso.For more information about administrator accounts, see Managing Databases and Logins.

Quando si usa Azure Active Directory con la replica geografica, l'amministratore di Azure Active Directory deve essere configurato sia per i server primari che per quelli secondari.When using Azure Active Directory with geo-replication, the Azure Active Directory administrator must be configured for both the primary and the secondary servers. Se un server non dispone di un amministratore Azure Active Directory, gli Azure Active Directory e gli utenti riceveranno un Cannot connect errore to server.If a server does not have an Azure Active Directory administrator, then Azure Active Directory logins and users receive a Cannot connect to server error.

Nota

Gli utenti che non sono basati su un account Azure AD (incluso l'account amministratore del server) non possono creare utenti basati su Azure AD, perché non sono autorizzati a convalidare gli utenti del database proposti con il Azure AD.Users that are not based on an Azure AD account (including the server administrator account) cannot create Azure AD-based users, because they do not have permission to validate proposed database users with the Azure AD.

Effettuare il Azure AD amministratore (SQL Istanza gestita)Provision Azure AD admin (SQL Managed Instance)

Importante

Seguire questa procedura solo se si sta provisioning di un Istanza gestita di SQL di Azure.Only follow these steps if you are provisioning an Azure SQL Managed Instance. Questa operazione può essere eseguita solo dall'amministratore globale o da un amministratore dei ruoli con privilegi in Azure AD.This operation can only be executed by Global Administrator or a Privileged Role Administrator in Azure AD.

Nell'anteprima pubblica è possibile assegnare il ruolo con autorizzazioni di lettura nella directory a un gruppo in Azure AD.In public preview, you can assign the Directory Readers role to a group in Azure AD. I proprietari del gruppo possono quindi aggiungere l'identità dell'istanza gestita come membro di questo gruppo, in modo da consentire il provisioning di un amministratore Azure AD per l'istanza di SQL Istanza gestita.The group owners can then add the managed instance identity as a member of this group, which would allow you to provision an Azure AD admin for the SQL Managed Instance. Per altre informazioni su questa funzionalità, vedere Ruolo con autorizzazioni di lettura nella directory in Azure Active Directory per Azure SQL.For more information on this feature, see Directory Readers role in Azure Active Directory for Azure SQL.

L'Istanza gestita SQL deve avere le autorizzazioni per leggere Azure AD per eseguire correttamente attività come l'autenticazione degli utenti tramite l'appartenenza al gruppo di sicurezza o la creazione di nuovi utenti.Your SQL Managed Instance needs permissions to read Azure AD to successfully accomplish tasks such as authentication of users through security group membership or creation of new users. Per il funzionamento, è necessario concedere all'istanza di SQL Istanza gestita l'autorizzazione per la lettura Azure AD.For this to work, you need to grant the SQL Managed Instance permission to read Azure AD. A tale scopo, è possibile usare portale di Azure o PowerShell.You can do this using the Azure portal or PowerShell.

Portale di AzureAzure portal

Per concedere l'autorizzazione di lettura Istanza gestita Azure AD SQL usando il portale di Azure, accedere come amministratore globale in Azure AD e seguire questa procedura:To grant your SQL Managed Instance Azure AD read permission using the Azure portal, log in as Global Administrator in Azure AD and follow these steps:

  1. Nell'portale di Azure,nell'angolo in alto a destra, selezionare la connessione da un elenco a discesa di possibili active directory.In the Azure portal, in the upper-right corner, select your connection from a drop-down list of possible Active Directories.

  2. Scegliere la directory corretta come directory predefinita di Azure AD.Choose the correct Active Directory as the default Azure AD.

    Questo passaggio collega la sottoscrizione associata ad Active Directory a SQL Istanza gestita, assicurando che la stessa sottoscrizione sia usata sia per l'istanza di Azure AD che per l'istanza di SQL Istanza gestita.This step links the subscription associated with Active Directory to the SQL Managed Instance, making sure that the same subscription is used for both the Azure AD instance and the SQL Managed Instance.

  3. Passare all'istanza di SQL Istanza gestita che si vuole usare per l Azure AD integra.Navigate to the SQL Managed Instance you want to use for Azure AD integration.

    Screenshot dell'portale di Azure che mostra la pagina di amministrazione di Active Directory aperta per l'istanza gestita di SQL selezionata.

  4. Selezionare il banner nella parte superiore della pagina di amministrazione di Active Directory e concedere l'autorizzazione all'utente corrente.Select the banner on top of the Active Directory admin page and grant permission to the current user.

    Screenshot della finestra di dialogo per la concessione delle autorizzazioni a un'istanza gestita di SQL per l'accesso ad Active Directory.

  5. Al termine dell'operazione, nell'angolo superiore destro verrà visualizzata la notifica seguente:After the operation succeeds, the following notification will show up in the top-right corner:

    Screenshot di una notifica che conferma che le autorizzazioni di lettura di Active Directory sono state aggiornate correttamente per l'istanza gestita.

  6. È ora possibile scegliere l'amministratore Azure AD per l'istanza di SQL Istanza gestita.Now you can choose your Azure AD admin for your SQL Managed Instance. Nella pagina Amministratore di Active Directory selezionare il comando Imposta amministratore.For that, on the Active Directory admin page, select Set admin command.

    Screenshot che mostra il comando Imposta amministratore evidenziato nella pagina di amministrazione di Active Directory per l'istanza gestita di SQL selezionata.

  7. Nella pagina Azure AD amministratore cercare un utente, selezionare l'utente o il gruppo da amministratore e quindi selezionare Seleziona.On the Azure AD admin page, search for a user, select the user or group to be an administrator, and then select Select.

    La pagina Amministratore di Active Directory mostra tutti i membri e i gruppi di Active Directory.The Active Directory admin page shows all members and groups of your Active Directory. Gli utenti e i gruppi non disponibili (in grigio) non possono essere selezionati, perché non sono supportati come amministratori di Azure AD.Users or groups that are grayed out can't be selected because they aren't supported as Azure AD administrators. Vedere l'elenco degli amministratori supportati in Funzionalità e limitazioni di Azure AD.See the list of supported admins in Azure AD Features and Limitations. Il controllo degli accessi in base al ruolo di Azure si applica solo al portale di Azure e non viene propagato al database SQL, a SQL Istanza gestita o Azure Synapse.Azure role-based access control (Azure RBAC) applies only to the Azure portal and isn't propagated to SQL Database, SQL Managed Instance, or Azure Synapse.

    Aggiungere un Azure Active Directory amministratore

  8. Nella parte superiore della pagina Amministratore di Active Directory selezionare Salva.At the top of the Active Directory admin page, select Save.

    Screenshot della pagina di amministrazione di Active Directory con il pulsante Salva nella riga superiore accanto ai pulsanti Imposta amministratore e Rimuovi amministratore.

    Il processo di modifica dell'amministratore può richiedere alcuni minuti.The process of changing the administrator may take several minutes. Al termine del processo, nella casella Amministratore di Active Directory verrà visualizzato il nome del nuovo amministratore.Then the new administrator appears in the Active Directory admin box.

Dopo aver provisioning di Azure AD amministratore di sql Istanza gestita, è possibile iniziare a creare Azure AD entità server (account di accesso) con la sintassi CREATE LOGIN.After provisioning an Azure AD admin for your SQL Managed Instance, you can begin to create Azure AD server principals (logins) with the CREATE LOGIN syntax. Per altre informazioni, vedere Panoramica di SQL Istanza gestita .For more information, see SQL Managed Instance overview.

Suggerimento

Per rimuovere un amministratore in un secondo momento, nella parte superiore della pagina Amministratore di Active Directory scegliere Rimuovi amministratore e quindi Salva.To later remove an Admin, at the top of the Active Directory admin page, select Remove admin, and then select Save.

PowerShellPowerShell

Per concedere l'autorizzazione di Istanza gestita Azure AD sql usando PowerShell, eseguire questo script:To grant your SQL Managed Instance Azure AD read permission by using the PowerShell, run this script:

# 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 per SQL Istanza gestitaPowerShell for SQL Managed Instance

Per eseguire i cmdlet di PowerShell, è necessario che Azure PowerShell sia installato e in esecuzione.To run PowerShell cmdlets, you need to have Azure PowerShell installed and running. Per informazioni dettagliate, vedere Come installare e configurare Azure PowerShell.For detailed information, see How to install and configure Azure PowerShell.

Importante

Il modulo PowerShell Azure Resource Manager (RM) è ancora supportato da Istanza gestita di SQL di Azure, ma tutto lo sviluppo futuro è per il modulo Az.Sql.The PowerShell Azure Resource Manager (RM) module is still supported by Azure SQL Managed Instance, but all future development is for the Az.Sql module. Il modulo AzureRM continuerà a ricevere correzioni di bug almeno fino a dicembre 2020.The AzureRM module will continue to receive bug fixes until at least December 2020. Gli argomenti per i comandi nei moduli Az e AzureRm sono sostanzialmente identici.The arguments for the commands in the Az module and in the AzureRm modules are substantially identical. Per altre informazioni sulla compatibilità, vedere Introduzione del nuovo modulo Az di Azure PowerShell.For more about their compatibility, see Introducing the new Azure PowerShell Az module.

Per eseguire il provisioning di un amministratore di Azure AD, eseguire i comandi di Azure PowerShell seguenti:To provision an Azure AD admin, execute the following Azure PowerShell commands:

  • Connect-AzAccountConnect-AzAccount
  • Select-AzSubscriptionSelect-AzSubscription

I cmdlet usati per effettuare il provisioning e la gestione Azure AD amministratore di SQL Istanza gestita sono elencati nella tabella seguente:The cmdlets used to provision and manage Azure AD admin for your SQL Managed Instance are listed in the following table:

Nome del cmdletCmdlet name DescrizioneDescription
Set-AzSqlInstanceActiveDirectoryAdministratorSet-AzSqlInstanceActiveDirectoryAdministrator Effettua il provisioning Azure AD amministratore del database SQL Istanza gestita nella sottoscrizione corrente.Provisions an Azure AD administrator for the SQL Managed Instance in the current subscription. (Deve essere della sottoscrizione corrente)(Must be from the current subscription)
Remove-AzSqlInstanceActiveDirectoryAdministratorRemove-AzSqlInstanceActiveDirectoryAdministrator Rimuove un Azure AD per l'istanza Istanza gestita SQL nella sottoscrizione corrente.Removes an Azure AD administrator for the SQL Managed Instance in the current subscription.
Get-AzSqlInstanceActiveDirectoryAdministratorGet-AzSqlInstanceActiveDirectoryAdministrator Restituisce informazioni su un amministratore Azure AD per il Istanza gestita SQL nella sottoscrizione corrente.Returns information about an Azure AD administrator for the SQL Managed Instance in the current subscription.

Il comando seguente ottiene informazioni su un amministratore Azure AD per un Istanza gestita SQL denominato ManagedInstance01 associato a un gruppo di risorse denominato ResourceGroup01.The following command gets information about an Azure AD administrator for a SQL Managed Instance named ManagedInstance01 that is associated with a resource group named ResourceGroup01.

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

Il comando seguente effettua il provisioning Azure AD un gruppo di amministratori di database denominato DBAs per il Istanza gestita SQL denominato ManagedInstance01.The following command provisions an Azure AD administrator group named DBAs for the SQL Managed Instance named ManagedInstance01. Questo server è associato al gruppo di risorse ResourceGroup01.This server is associated with resource group ResourceGroup01.

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

Il comando seguente rimuove l'Azure AD per l'istanza di SQL Istanza gestita denominata ManagedInstanceName01 associata al gruppo di risorse ResourceGroup01.The following command removes the Azure AD administrator for the SQL Managed Instance named ManagedInstanceName01 associated with the resource group ResourceGroup01.

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

Effettuare il Azure AD amministratore (database SQL)Provision Azure AD admin (SQL Database)

Importante

Seguire questa procedura solo se si sta provisioning di un server per il database SQL o Azure Synapse.Only follow these steps if you are provisioning a server for SQL Database or Azure Synapse.

Le due procedure seguenti illustrano come effettuare il provisioning di un amministratore Azure Active Directory per il server nell'portale di Azure e usando PowerShell.The following two procedures show you how to provision an Azure Active Directory administrator for your server in the Azure portal and by using PowerShell.

Portale di AzureAzure portal

  1. Nell'angolo in alto a destra del portale di Azure scegliere la connessione per visualizzare un elenco a discesa delle possibili directory di Active Directory.In the Azure portal, in the upper-right corner, select your connection to drop down a list of possible Active Directories. Scegliere la directory corretta come directory predefinita di Azure AD.Choose the correct Active Directory as the default Azure AD. Questo passaggio collega Active Directory associato alla sottoscrizione con il server assicurando che la stessa sottoscrizione sia usata sia per Azure AD che per il server.This step links the subscription-associated Active Directory with server making sure that the same subscription is used for both Azure AD and the server.

  2. Cercare e selezionare SQL Server.Search for and select SQL server.

    Cercare e selezionare i server SQL

    Nota

    In questa pagina, prima di selezionare SQL Server è possibile selezionare la stella accanto al nome per aggiungere ai preferiti la categoria e aggiungere SQL Server alla barra di navigazione sinistra.On this page, before you select SQL servers, you can select the star next to the name to favorite the category and add SQL servers to the left navigation bar.

  3. Nella pagina SQL Server selezionare Amministratore di Active Directory.On the SQL Server page, select Active Directory admin.

  4. Nella pagina Amministratore di Active Directory selezionare Imposta amministratore.In the Active Directory admin page, select Set admin.

    I server SQL impostano l'amministratore di Active Directory

  5. Nella pagina Aggiungi amministratore cercare un utente, selezionare l'utente o il gruppo da amministratore e quindi selezionare Seleziona.In the Add admin page, search for a user, select the user or group to be an administrator, and then select Select. La pagina Amministratore di Active Directory mostra tutti i membri e i gruppi di Active Directory.(The Active Directory admin page shows all members and groups of your Active Directory. Gli utenti e i gruppi non disponibili (in grigio) non possono essere selezionati, perché non sono supportati come amministratori di Azure AD.Users or groups that are grayed out cannot be selected because they are not supported as Azure AD administrators. Vedere l'elenco degli amministratori supportati nella sezione Azure AD Features and Limitations di Use Azure Active Directory Authentication for authentication with SQL Database or Azure Synapse. Il controllo degli accessi in base al ruolo di Azure si applica solo al portale e non viene propagato SQL Server.(See the list of supported admins in the Azure AD Features and Limitations section of Use Azure Active Directory Authentication for authentication with SQL Database or Azure Synapse.) Azure role-based access control (Azure RBAC) applies only to the portal and is not propagated to SQL Server.

    Selezionare Azure Active Directory amministratore

  6. Nella parte superiore della pagina Amministratore di Active Directory selezionare Salva.At the top of the Active Directory admin page, select Save.

    Salvare l'impostazione dell'amministratore

Il processo di modifica dell'amministratore può richiedere alcuni minuti.The process of changing the administrator may take several minutes. Il nuovo amministratore è quindi visualizzato nella casella Amministratore di Active Directory .Then the new administrator appears in the Active Directory admin box.

Nota

Quando si configura l'Azure AD, il nuovo nome amministratore (utente o gruppo) non può essere già presente nel database master virtuale come utente di autenticazione del server.When setting up the Azure AD admin, the new admin name (user or group) cannot already be present in the virtual master database as a server authentication user. Se presente, l’impostazione dell’amministratore di Microsoft Azure avrà esito negativo; eseguire il rollback della creazione e indicare che tale (nome) di amministratore già esiste.If present, the Azure AD admin setup will fail; rolling back its creation and indicating that such an admin (name) already exists. Poiché tale utente di autenticazione server non fa parte del Azure AD, qualsiasi tentativo di connettersi al server usando Azure AD'autenticazione non riesce.Since such a server authentication user is not part of the Azure AD, any effort to connect to the server using Azure AD authentication fails.

Per rimuovere un amministratore in un secondo momento, nella parte superiore della pagina Amministratore di Active Directory scegliere Rimuovi amministratore e quindi Salva.To later remove an Admin, at the top of the Active Directory admin page, select Remove admin, and then select Save.

PowerShell per database SQL e Azure SynapsePowerShell for SQL Database and Azure Synapse

Per eseguire i cmdlet di PowerShell, è necessario che Azure PowerShell sia installato e in esecuzione.To run PowerShell cmdlets, you need to have Azure PowerShell installed and running. Per informazioni dettagliate, vedere Come installare e configurare Azure PowerShell.For detailed information, see How to install and configure Azure PowerShell. Per eseguire il provisioning di un amministratore di Azure AD, eseguire i comandi di Azure PowerShell seguenti:To provision an Azure AD admin, execute the following Azure PowerShell commands:

  • Connect-AzAccountConnect-AzAccount
  • Select-AzSubscriptionSelect-AzSubscription

Cmdlet usati per effettuare il provisioning e la gestione Azure AD amministratore per database SQL e Azure Synapse:Cmdlets used to provision and manage Azure AD admin for SQL Database and Azure Synapse:

Nome del cmdletCmdlet name DescrizioneDescription
Set-AzSqlServerActiveDirectoryAdministratorSet-AzSqlServerActiveDirectoryAdministrator Effettua il provisioning Azure Active Directory amministratore del server che ospita il database SQL o Azure Synapse.Provisions an Azure Active Directory administrator for the server hosting SQL Database or Azure Synapse. (Deve essere della sottoscrizione corrente)(Must be from the current subscription)
Remove-AzSqlServerActiveDirectoryAdministratorRemove-AzSqlServerActiveDirectoryAdministrator Rimuove un amministratore Azure Active Directory per il server che ospita il database SQL o Azure Synapse.Removes an Azure Active Directory administrator for the server hosting SQL Database or Azure Synapse.
Get-AzSqlServerActiveDirectoryAdministratorGet-AzSqlServerActiveDirectoryAdministrator Restituisce informazioni su un amministratore Azure Active Directory attualmente configurato per il server che ospita il database SQL o Azure Synapse.Returns information about an Azure Active Directory administrator currently configured for the server hosting SQL Database or Azure Synapse.

Usare il comando di PowerShell get-help per visualizzare altre informazioni per ognuno di questi comandi.Use PowerShell command get-help to see more information for each of these commands. Ad esempio: get-help Set-AzSqlServerActiveDirectoryAdministrator.For example, get-help Set-AzSqlServerActiveDirectoryAdministrator.

Lo script seguente effettua il provisioning Azure AD un gruppo di amministratori denominato DBA_Group (ID oggetto ) per il server demo_server in un gruppo di risorse denominato 40b79501-b343-44ed-9ce7-da4c8cc7353f Group-23:The following script provisions an Azure AD administrator group named DBA_Group (object ID 40b79501-b343-44ed-9ce7-da4c8cc7353f) for the demo_server server in a resource group named Group-23:

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

Il parametro di input DisplayName accetta il nome visualizzato di Azure AD o il nome dell'entità utente.The DisplayName input parameter accepts either the Azure AD display name or the User Principal Name. Ad esempio, DisplayName="John Smith" e DisplayName="johns@contoso.com".For example, DisplayName="John Smith" and DisplayName="johns@contoso.com". Per i gruppi di Azure AD è supportato solo il nome visualizzato di Azure AD.For Azure AD groups only the Azure AD display name is supported.

Nota

Il comando di Azure PowerShell Set-AzSqlServerActiveDirectoryAdministrator non impedisce di eseguire il provisioning degli amministratori di Azure AD per gli utenti non supportati.The Azure PowerShell command Set-AzSqlServerActiveDirectoryAdministrator does not prevent you from provisioning Azure AD admins for unsupported users. È possibile eseguire il provisioning di un utente non supportato il quale non può tuttavia connettersi a un database.An unsupported user can be provisioned, but can not connect to a database.

L'esempio seguente usa il valore ObjectID opzionale:The following example uses the optional ObjectID:

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

Nota

Il valore ObjectID di Azure AD è obbligatorio quando DisplayName non è univoco.The Azure AD ObjectID is required when the DisplayName is not unique. Per recuperare i valori ObjectID e DisplayName, usare la sezione Active Directory del portale di Azure classico e visualizzare le proprietà di un utente o di un gruppo.To retrieve the ObjectID and DisplayName values, use the Active Directory section of Azure Classic Portal, and view the properties of a user or group.

Nell'esempio seguente vengono restituite informazioni sull'Azure AD amministratore corrente per il server :The following example returns information about the current Azure AD admin for the server:

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

L'esempio seguente illustra come rimuovere un amministratore di Azure AD:The following example removes an Azure AD administrator:

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

Nota

È anche possibile effettuare il provisioning di un amministratore di Azure Active Directory usando le API REST.You can also provision an Azure Active Directory Administrator by using the REST APIs. Per altre informazioni, vedere Service Management REST API Reference and Operations for Azure SQL Database (Informazioni di riferimento e operative sull'API REST di gestione dei servizi per le operazioni del database SQL di Azure)For more information, see Service Management REST API Reference and Operations for Azure SQL Database Operations for Azure SQL Database

Impostare o annullare l'impostazione Azure AD'amministratore usando le entità servizioSet or unset the Azure AD admin using service principals

Se si prevede che l'entità servizio sia impostata o non impostata un amministratore Azure AD per Azure SQL, è necessaria un'autorizzazione API aggiuntiva.If you are planning to have the service principal set or unset an Azure AD admin for Azure SQL, an additional API Permission is necessary. L'autorizzazione per Directory.Read.All per l'API delle applicazioni dovrà essere aggiunta all'applicazione in Azure AD.The Directory.Read.All Application API permission will need to be added to your application in Azure AD.

Nota

Questa sezione sull'impostazione dell'amministratore Azure AD si applica solo all'uso di PowerShell o dei comandi dell'interfaccia della riga di comando, in quanto non è possibile usare il portale di Azure come Azure AD servizio.This section on setting the Azure AD admin only applies to using PowerShell or CLI commands, as you cannot use the Azure portal as an Azure AD service principal.

Autorizzazioni Directory.Reader.All in Azure AD

Per l'entità servizio è necessario anche il ruolo Collaboratore di SQL Server per Database SQL oppure il ruolo Collaboratore di Istanza gestita di SQL per Istanza gestita di SQL.The service principal will also need the SQL Server Contributor role for SQL Database, or the SQL Managed Instance Contributor role for SQL Managed Instance.

Per altre informazioni, vedere Entità servizio (Azure AD applicazioni).For more information, see service principals (Azure AD applications).

Configurare i computer clientConfigure your client computers

In tutti i computer client da cui le applicazioni o gli utenti si connettono al database SQL o Azure Synapse usando Azure AD identità, è necessario installare il software seguente:On all client machines, from which your applications or users connect to SQL Database or Azure Synapse using Azure AD identities, you must install the following software:

È possibile soddisfare questi requisiti tramite:You can meet these requirements by:

  • L'installazione della versione più recente SQL Server Management Studio o SQL Server Data Tools soddisfa il requisito .NET Framework 4.6.Installing the latest version of SQL Server Management Studio or SQL Server Data Tools meets the .NET Framework 4.6 requirement.
    • SSMS installa la versione x86 diADAL.DLL.SSMS installs the x86 version of ADAL.DLL.
    • SSDT installa la versione amd64 di ADAL.DLL.SSDT installs the amd64 version of ADAL.DLL.
    • La versione Visual Studio più recente Visual Studio download soddisfa il requisito .NET Framework 4.6, ma non installa la versione amd64 richiesta diADAL.DLL.The latest Visual Studio from Visual Studio Downloads meets the .NET Framework 4.6 requirement, but does not install the required amd64 version of ADAL.DLL.

Creare utenti indipendenti mappati a identità di Azure ADCreate contained users mapped to Azure AD identities

Poiché SQL Istanza gestita supporta Azure AD entità server (account di accesso), l'uso di utenti di database indipendente non è obbligatorio.Because SQL Managed Instance supports Azure AD server principals (logins), using contained database users is not required. Le entità di sicurezza del server Azure AD (accessi) consentono di creare gli accessi dagli utenti, dai gruppi o dalle applicazioni di Azure AD.Azure AD server principals (logins) enable you to create logins from Azure AD users, groups, or applications. Ciò significa che è possibile eseguire l'autenticazione con il Istanza gestita SQL usando l'account di accesso Azure AD server anziché un utente del database indipendente.This means that you can authenticate with your SQL Managed Instance by using the Azure AD server login rather than a contained database user. Per altre informazioni, vedere Panoramica di SQL Istanza gestita .For more information, see SQL Managed Instance overview. Per la sintassi sulla creazione di entità server (account di accesso) di Azure AD, vedere CREATE LOGIN.For syntax on creating Azure AD server principals (logins), see CREATE LOGIN.

Tuttavia, l'Azure Active Directory con il database SQL e Azure Synapse richiede l'uso di utenti di database indipendente basati su un'Azure AD identità.However, using Azure Active Directory authentication with SQL Database and Azure Synapse requires using contained database users based on an Azure AD identity. Un utente del database indipendente non dispone di un account di accesso nel database master ed esegue il mapping a un'identità Azure AD associata al database.A contained database user does not have a login in the master database, and maps to an identity in Azure AD that is associated with the database. L'identità di Azure AD può essere un singolo account utente o un gruppo.The Azure AD identity can be either an individual user account or a group. Per altre informazioni sugli utenti di database indipendente, vedere Utenti di database indipendente: rendere portabile un database.For more information about contained database users, see Contained Database Users- Making Your Database Portable.

Nota

Gli utenti del database, tranne gli amministratori, non possono essere creati tramite il portale di Azure.Database users (with the exception of administrators) cannot be created using the Azure portal. I ruoli di Azure non vengono propagati al database nel database SQL, nel database SQL Istanza gestita o Azure Synapse.Azure roles are not propagated to the database in SQL Database, the SQL Managed Instance, or Azure Synapse. I ruoli di Azure vengono usati per la gestione delle risorse di Azure e non si applicano alle autorizzazioni del database.Azure roles are used for managing Azure Resources, and do not apply to database permissions. Ad esempio, il ruolo SQL Server Collaboratore non concede l'accesso per connettersi al database nel database SQL, nel Istanza gestita SQL o Azure Synapse.For example, the SQL Server Contributor role does not grant access to connect to the database in SQL Database, the SQL Managed Instance, or Azure Synapse. L'autorizzazione di accesso deve essere concessa direttamente nel database tramite istruzioni Transact-SQL.The access permission must be granted directly in the database using Transact-SQL statements.

Avviso

I caratteri speciali, ad esempio due punti o e commerciale, se inclusi come nomi : utente in T-SQL e le istruzioni non sono & CREATE LOGIN CREATE USER supportati.Special characters like colon : or ampersand & when included as user names in the T-SQL CREATE LOGIN and CREATE USER statements are not supported.

Per creare un utente di database indipendente basato su Azure AD, diverso dall'amministratore del server proprietario del database, connettersi al database con un'identità di Azure AD come utente con almeno l'autorizzazione ALTER ANY USER .To create an Azure AD-based contained database user (other than the server administrator that owns the database), connect to the database with an Azure AD identity, as a user with at least the ALTER ANY USER permission. Usare quindi la sintassi Transact-SQL seguente:Then use the following Transact-SQL syntax:

CREATE USER <Azure_AD_principal_name> FROM EXTERNAL PROVIDER;

Azure_AD_principal_name può essere il nome dell'entità utente di un utente di Azure AD o il nome visualizzato di un gruppo di Azure AD.Azure_AD_principal_name can be the user principal name of an Azure AD user or the display name for an Azure AD group.

Esempi: per creare un utente di database indipendente che rappresenta un utente di dominio gestito o federato di Azure AD:Examples: To create a contained database user representing an Azure AD federated or managed domain user:

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

Per creare un utente di database indipendente che rappresenta un gruppo di dominio federato o di Azure AD, specificare il nome visualizzato di un gruppo di sicurezza:To create a contained database user representing an Azure AD or federated domain group, provide the display name of a security group:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Per creare un utente di database indipendente che rappresenta un'applicazione che si connette usando un token di Azure AD:To create a contained database user representing an application that connects using an Azure AD token:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Nota

Questo comando richiede che l'accesso a SQL Azure AD (il "provider esterno") per conto dell'utente connesso.This command requires that SQL access Azure AD (the "external provider") on behalf of the logged-in user. In alcuni casi si verificano circostanze che Azure AD restituire un'eccezione a SQL.Sometimes, circumstances will arise that cause Azure AD to return an exception back to SQL. In questi casi, l'utente visualizza l'errore SQL 33134, che deve contenere Azure AD messaggio di errore specifico.In these cases, the user will see SQL error 33134, which should contain the Azure AD-specific error message. Nella maggior parte dei casi, l'errore indica che l'accesso è negato o che l'utente deve registrarsi in MFA per accedere alla risorsa o che l'accesso tra applicazioni di prima parte deve essere gestito tramite preautenizzazione.Most of the time, the error will say that access is denied, or that the user must enroll in MFA to access the resource, or that access between first-party applications must be handled via preauthorization. Nei primi due casi, il problema è in genere causato dai criteri di accesso condizionale impostati nel tenant Azure AD dell'utente: impediscono all'utente di accedere al provider esterno.In the first two cases, the issue is usually caused by Conditional Access policies that are set in the user's Azure AD tenant: they prevent the user from accessing the external provider. L'aggiornamento dei criteri di accesso condizionale per consentire l'accesso all'applicazione '000000002-0000-0000-c000-0000000000000' (ID applicazione del Azure AD API Graph) dovrebbe risolvere il problema.Updating the Conditional Access policies to allow access to the application '00000002-0000-0000-c000-000000000000' (the application ID of the Azure AD Graph API) should resolve the issue. Se l'errore indica che l'accesso tra applicazioni di terze parti deve essere gestito tramite preautorizzazione, il problema è dovuto al fatto che l'utente ha eseguito l'accesso come entità servizio.In the case that the error says access between first-party applications must be handled via preauthorization, the issue is because the user is signed in as a service principal. Il comando dovrebbe avere esito positivo se viene invece eseguito da un utente.The command should succeed if it is executed by a user instead.

Suggerimento

È possibile creare un utente direttamente da Azure Active Directory solo se si usa l'Azure Active Directory associata alla sottoscrizione di Azure.You cannot directly create a user from an Azure Active Directory other than the Azure Active Directory that is associated with your Azure subscription. Tuttavia, i membri di altre directory di Active Directory che sono utenti importati nell'Active Directory associata (chiamati utenti esterni) possono essere aggiunti a un gruppo Active Directory nell'Active Directory tenant.However, members of other Active Directories that are imported users in the associated Active Directory (known as external users) can be added to an Active Directory group in the tenant Active Directory. Tramite la creazione di un utente del database indipendente per il gruppo AD, gli utenti dell'Active Directory esterna possono ottenere l'accesso al database SQL.By creating a contained database user for that AD group, the users from the external Active Directory can gain access to SQL Database.

Per altre informazioni sulla creazione di utenti di database indipendente basati su identità di Azure Active Directory, vedere CREATE USER (Transact-SQL).For more information about creating contained database users based on Azure Active Directory identities, see CREATE USER (Transact-SQL).

Nota

La rimozione dell Azure Active Directory amministratore del server impedisce a qualsiasi utente Azure AD di autenticazione di connettersi al server.Removing the Azure Active Directory administrator for the server prevents any Azure AD authentication user from connecting to the server. Se necessario, un amministratore del database SQL può eliminare manualmente gli utenti di Azure AD inutilizzabili.If necessary, unusable Azure AD users can be dropped manually by a SQL Database administrator.

Nota

Se si riceve un messaggio di timeout della connessione scaduto, potrebbe essere necessario impostare il parametro TransparentNetworkIPResolution della stringa di connessione su false.If you receive a Connection Timeout Expired, you may need to set the TransparentNetworkIPResolution parameter of the connection string to false. Per altre informazioni, vedere Connection timeout issue with .NET Framework 4.6.1 - TransparentNetworkIPResolution (Problema di timeout della connessione con .NET Framework 4.6.1 - TransparentNetworkIPResolution).For more information, see Connection timeout issue with .NET Framework 4.6.1 - TransparentNetworkIPResolution.

Quando si crea un database utente, questo riceve l'autorizzazione CONNECT e può connettersi al database come membro del ruolo PUBLIC.When you create a database user, that user receives the CONNECT permission and can connect to that database as a member of the PUBLIC role. Inizialmente le sole autorizzazioni disponibili per l'utente sono quelle concesse al ruolo PUBLIC o quelle concesse a qualsiasi gruppo di Azure AD di cui è membro.Initially the only permissions available to the user are any permissions granted to the PUBLIC role, or any permissions granted to any Azure AD groups that they are a member of. Dopo avere effettuato il provisioning di un utente di database indipendente basato su Azure AD, è possibile concedere all'utente altre autorizzazioni, esattamente come si concede un'autorizzazione a qualsiasi altro tipo di utente.Once you provision an Azure AD-based contained database user, you can grant the user additional permissions, the same way as you grant permission to any other type of user. In genere si concedono autorizzazioni ai ruoli del database e si aggiungono gli utenti ai ruoli.Typically grant permissions to database roles, and add users to roles. Per altre informazioni, vedere l'articolo relativo alle nozioni di base delle autorizzazioni per il motore di database.For more information, see Database Engine Permission Basics. Per altre informazioni sui ruoli speciali del database SQL, vedere Gestione di database e account di accesso nel database SQL di Azure.For more information about special SQL Database roles, see Managing Databases and Logins in Azure SQL Database. Un account utente di dominio federato importato in un dominio gestito come utente esterno deve usare l'identità del dominio gestito.A federated domain user account that is imported into a managed domain as an external user, must use the managed domain identity.

Nota

Gli utenti di Azure AD sono contrassegnati nei metadati del database con il tipo E (EXTERNAL_USER). I gruppi sono contrassegnati con il tipo X (EXTERNAL_GROUPS).Azure AD users are marked in the database metadata with type E (EXTERNAL_USER) and for groups with type X (EXTERNAL_GROUPS). Per altre informazioni, vedere sys.database_principals.For more information, see sys.database_principals.

Connettersi al database usando SSMS o SSDTConnect to the database using SSMS or SSDT

Per verificare che l'amministratore di Azure AD sia configurato correttamente, connettersi al database master con l'account amministratore di Azure AD.To confirm the Azure AD administrator is properly set up, connect to the master database using the Azure AD administrator account. Per effettuare il provisioning di un utente di database indipendente basato su Azure AD, diverso dall'amministratore del server proprietario del database, connettersi al database con un'identità di Azure AD che abbia accesso al database.To provision an Azure AD-based contained database user (other than the server administrator that owns the database), connect to the database with an Azure AD identity that has access to the database.

Importante

Il supporto per l'autenticazione di Azure Active Directory è disponibile con SQL Server 2016 Management Studio e SQL Server Data Tools in Visual Studio 2015.Support for Azure Active Directory authentication is available with SQL Server 2016 Management Studio and SQL Server Data Tools in Visual Studio 2015. La versione di agosto 2016 di SQL Server Management Studio include anche il supporto per l'autenticazione universale di Active Directory, che consente agli amministratori di richiedere la Multi-Factor Authentication mediante chiamata telefonica, SMS, smart card con pin, o notifica dell'app per dispositivi mobili.The August 2016 release of SSMS also includes support for Active Directory Universal Authentication, which allows administrators to require Multi-Factor Authentication using a phone call, text message, smart cards with pin, or mobile app notification.

Uso di un'identità di Azure AD per la connessione con SSMS o SSDTUsing an Azure AD identity to connect using SSMS or SSDT

Le procedure seguenti illustrano come connettersi al database SQL con un'identità Azure AD usando SQL Server Management Studio o SQL Server Database Tools.The following procedures show you how to connect to SQL Database with an Azure AD identity using SQL Server Management Studio or SQL Server Database Tools.

Autenticazione integrata di Active DirectoryActive Directory integrated authentication

Usare questo metodo se si è connessi a Windows usando le credenziali di Azure Active Directory da un dominio federato o un dominio gestito configurato per l'accesso Single Sign-On facile per l'autenticazione pass-through e dell'hash delle password.Use this method if you are logged into Windows using your Azure Active Directory credentials from a federated domain, or a managed domain that is configured for seamless single sign-on for pass-through and password hash authentication. Per altre informazioni, vedere Accesso Single Sign-On facile di Azure Active Directory.For more information, see Azure Active Directory Seamless Single Sign-On.

  1. Avviare Management Studio o Strumenti dati e nella finestra di dialogo Connetti al server (o Connetti a motore di database) selezionare Azure Active Directory - Integrata. Start Management Studio or Data Tools and in the Connect to Server (or Connect to Database Engine) dialog box, in the Authentication box, select Azure Active Directory - Integrated. La password non è necessaria e non può essere immessa, perché per la connessione vengono presentate le credenziali esistenti.No password is needed or can be entered because your existing credentials will be presented for the connection.

    Selezionare Autenticazione integrata di Active Directory

  2. Scegliere il pulsante Opzioni, quindi nella pagina Proprietà connessione digitare il nome del database utente a cui si desidera connettersi nella casella Connect to database (Connetti al database).Select the Options button, and on the Connection Properties page, in the Connect to database box, type the name of the user database you want to connect to. Per altre informazioni, vedere l'articolo Multi-factor Azure AD auth sulle differenze tra le proprietà di connessione per SSMS 17.x e 18.x.For more information, see the article Multi-factor Azure AD auth on the differences between the Connection Properties for SSMS 17.x and 18.x.

    Selezionare il nome del database

Autenticazione della password di Active DirectoryActive Directory password authentication

Usare questo metodo per connettersi con il nome dell'entità di Azure AD tramite il dominio gestito di Azure AD.Use this method when connecting with an Azure AD principal name using the Azure AD managed domain. È anche possibile usarlo per gli account federati senza accesso al dominio, ad esempio quando si lavora in remoto.You can also use it for federated accounts without access to the domain, for example, when working remotely.

Usare questo metodo per eseguire l'autenticazione al database nel database SQL o nel Istanza gestita SQL con gli utenti con identità solo cloud di Azure AD o con gli utenti che usano Azure AD identità ibride.Use this method to authenticate to the database in SQL Database or the SQL Managed Instance with Azure AD cloud-only identity users, or those who use Azure AD hybrid identities. Questo metodo supporta gli utenti che vogliono usare le credenziali di Windows, ma il computer locale non è aggiunto al dominio (ad esempio, usando l'accesso remoto).This method supports users who want to use their Windows credential, but their local machine is not joined with the domain (for example, using remote access). In questo caso, un utente di Windows può indicare l'account di dominio e la password e può eseguire l'autenticazione al database nel database SQL, nel database SQL Istanza gestita o Azure Synapse.In this case, a Windows user can indicate their domain account and password, and can authenticate to the database in SQL Database, the SQL Managed Instance, or Azure Synapse.

  1. Avviare Management Studio o Strumenti dati e nella finestra di dialogo Connetti al server (o Connetti a motore di database) selezionare Azure Active Directory - Password. Start Management Studio or Data Tools and in the Connect to Server (or Connect to Database Engine) dialog box, in the Authentication box, select Azure Active Directory - Password.

  2. Nella casella Nome utente digitare il nome utente Azure Active Directory nel formato nome utente @ domain.com.In the User name box, type your Azure Active Directory user name in the format username@domain.com. I nomi utente devono essere un account Azure Active Directory o un account di un dominio gestito o federato con Azure Active Directory.User names must be an account from Azure Active Directory or an account from a managed or federated domain with Azure Active Directory.

  3. Nella casella Password digitare la password utente per l'account Azure Active Directory o l'account di dominio gestito/federato.In the Password box, type your user password for the Azure Active Directory account or managed/federated domain account.

    Selezionare Autenticazione della password di Active Directory

  4. Scegliere il pulsante Opzioni, quindi nella pagina Proprietà connessione digitare il nome del database utente a cui si desidera connettersi nella casella Connect to database (Connetti al database).Select the Options button, and on the Connection Properties page, in the Connect to database box, type the name of the user database you want to connect to. Vedere il grafico nell'opzione precedente.(See the graphic in the previous option.)

Autenticazione interattiva di Active DirectoryActive Directory interactive authentication

Usare questo metodo per l'autenticazione interattiva con o senza Multi-Factor Authentication (MFA), con password richiesta in modo interattivo.Use this method for interactive authentication with or without Multi-Factor Authentication (MFA), with password being requested interactively. Questo metodo può essere usato per eseguire l'autenticazione al database nel database SQL, nel Istanza gestita SQL e nel Azure Synapse per gli utenti di identità solo cloud di Azure AD o per gli utenti che usano Azure AD identità ibride.This method can be used to authenticate to the database in SQL Database, the SQL Managed Instance, and Azure Synapse for Azure AD cloud-only identity users, or those who use Azure AD hybrid identities.

Per altre informazioni, vedere Using multi-factor Azure AD authentication with SQL Database and Azure Synapse (SSMS support for MFA).For more information, see Using multi-factor Azure AD authentication with SQL Database and Azure Synapse (SSMS support for MFA).

Utilizzo di un'identità di Azure Active Directory per connettersi da un'applicazione clientUsing an Azure AD identity to connect from a client application

Le procedure seguenti illustrano come connettersi a un database SQL con un'Azure AD identità da un'applicazione client.The following procedures show you how to connect to a SQL Database with an Azure AD identity from a client application.

Autenticazione integrata di Active DirectoryActive Directory integrated authentication

Per usare il autenticazione di Windows integrato, Active Directory del dominio deve essere federato con Azure Active Directory o deve essere un dominio gestito configurato per l'accesso Single Sign-On facile per l'autenticazione pass-through o dell'hash delle password.To use integrated Windows authentication, your domain's Active Directory must be federated with Azure Active Directory, or should be a managed domain that is configured for seamless single sign-on for pass-through or password hash authentication. Per altre informazioni, vedere Accesso Single Sign-On facile di Azure Active Directory.For more information, see Azure Active Directory Seamless Single Sign-On.

Nota

MSAL.NET (Microsoft.Identity.Client) per l'autenticazione integrata di Windows non è supportato per l'accesso Single Sign-On facile per l'autenticazione pass-through e con hash delle password.MSAL.NET (Microsoft.Identity.Client) for integrated Windows authentication is not supported for seamless single sign-on for pass-through and password hash authentication.

L'applicazione client (o un servizio) che si connette al database deve essere in esecuzione in un computer aggiunto a un dominio con le credenziali di dominio di un utente.Your client application (or a service) connecting to the database must be running on a domain-joined machine under a user's domain credentials.

Per connettersi a un database usando l'autenticazione integrata e un'identità Azure AD, la parola chiave Authentication nella stringa di connessione del database deve essere impostata su Active Directory Integrated .To connect to a database using integrated authentication and an Azure AD identity, the Authentication keyword in the database connection string must be set to Active Directory Integrated. L'esempio di codice C# seguente usa ADO .NET.The following C# code sample uses ADO .NET.

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

La parola chiave Integrated Security=True della stringa di connessione non è supportata per la connessione al database SQL di Azure.The connection string keyword Integrated Security=True is not supported for connecting to Azure SQL Database. Quando si esegue una connessione ODBC, è necessario rimuovere gli spazi e impostare l'autenticazione su 'ActiveDirectoryIntegrated'.When making an ODBC connection, you will need to remove spaces and set Authentication to 'ActiveDirectoryIntegrated'.

Autenticazione della password di Active DirectoryActive Directory password authentication

Per connettersi a un database usando Azure AD account utente con identità solo cloud o gli utenti che usano identità ibride di Azure AD, la parola chiave Authentication deve essere impostata su Active Directory Password .To connect to a database using Azure AD cloud-only identity user accounts, or those who use Azure AD hybrid identities, the Authentication keyword must be set to Active Directory Password. La stringa di connessione deve contenere le parole chiave e i valori User ID/UID e Password/PWD.The connection string must contain User ID/UID and Password/PWD keywords and values. L'esempio di codice C# seguente usa ADO .NET.The following C# code sample uses 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();

Per altre informazioni sui metodi di autenticazione di Azure AD, usare gli esempi di codice dimostrativo disponibili in Azure AD Authentication GitHub Demo(Dimostrazione GitHub dell'autenticazione di Azure AD).Learn more about Azure AD authentication methods using the demo code samples available at Azure AD Authentication GitHub Demo.

Token Azure ADAzure AD token

Questo metodo di autenticazione consente ai servizi di livello intermedio di ottenere token JSON Web (JWT) per connettersi al database nel database SQL, nel Istanza gestita SQL o nel Azure Synapse ottenendo un token da Azure AD.This authentication method allows middle-tier services to obtain JSON Web Tokens (JWT) to connect to the database in SQL Database, the SQL Managed Instance, or Azure Synapse by obtaining a token from Azure AD. Questo metodo consente vari scenari applicativi, tra cui identità del servizio, entità servizio e applicazioni che usano l'autenticazione basata su certificati.This method enables various application scenarios including service identities, service principals, and applications using certificate-based authentication. Per usare l'autenticazione tramite token di Azure AD, è necessario completare quattro passaggi fondamentali:You must complete four basic steps to use Azure AD token authentication:

  1. Registrare l'applicazione con Azure Active Directory e ottenere l'ID client per il codice.Register your application with Azure Active Directory and get the client ID for your code.
  2. Creare un utente del database che rappresenta l'applicazione.Create a database user representing the application. (Completato in precedenza al passaggio 6).(Completed earlier in step 6.)
  3. Creare un certificato nel computer client che esegue l'applicazione.Create a certificate on the client computer runs the application.
  4. Aggiungere il certificato come chiave per l'applicazione.Add the certificate as a key for your application.

Stringa di connessione di esempio:Sample 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();

Per altre informazioni, vedere SQL Server Security Blog(Blog sulla sicurezza del server SQL).For more information, see SQL Server Security Blog. Per informazioni sull'aggiunta di un certificato, vedere Introduzione all'autenticazione basata su certificati di Azure Active Directory.For information about adding a certificate, see Get started with certificate-based authentication in Azure Active Directory.

sqlcmdsqlcmd

Le istruzioni seguenti eseguono la connessione usando la versione 13.1 di sqlcmd disponibile in Download Center.The following statements, connect using version 13.1 of sqlcmd, which is available from the Download Center.

Nota

sqlcmd con il -G comando non funziona con le identità di sistema e richiede un account di accesso dell'entità utente.sqlcmd with the -G command does not work with system identities, and requires a user principal login.

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

Risolvere i problemi Azure AD autenticazioneTroubleshoot Azure AD authentication

Le indicazioni sulla risoluzione dei problemi Azure AD'autenticazione sono disponibili nel blog seguente: https://techcommunity.microsoft.com/t5/azure-sql-database/troubleshooting-problems-related-to-azure-ad-authentication-with/ba-p/1062991Guidance on troubleshooting issues with Azure AD authentication can be found in the following blog: https://techcommunity.microsoft.com/t5/azure-sql-database/troubleshooting-problems-related-to-azure-ad-authentication-with/ba-p/1062991

Passaggi successiviNext steps