Usa autenticazione Azure Active DirectoryUse Azure Active Directory authentication

si applica a:  Sì database SQL di Azure  Sì Azure SQL istanza gestita  Sì Azure sinapsi Analytics (SQL DW)APPLIES TO: yesAzure SQL Database yesAzure SQL Managed Instance yes Azure Synapse Analytics (SQL DW)

L'autenticazione Azure Active Directory (Azure AD) è un meccanismo per la connessione al database SQLdi Azure, ad Azure SQL istanza gestitae ad Azure sinapsi Analytics (in precedenza Azure SQL Data Warehouse) usando le identità in Azure ad.Azure Active Directory (Azure AD) authentication is a mechanism for connecting to Azure SQL Database, Azure SQL Managed Instance, and Azure Synapse Analytics (formerly Azure SQL Data Warehouse) by using identities in Azure AD.

Nota

Questo articolo si applica al database SQL di Azure, a SQL Istanza gestita e ad Azure sinapsi Analytics.This article applies to Azure SQL Database, SQL Managed Instance, and Azure Synapse Analytics.

Con l'autenticazione di Azure AD è possibile gestire centralmente le identità degli utenti del database e altri servizi Microsoft.With Azure AD authentication, you can centrally manage the identities of database users and other Microsoft services in one central location. La gestione centrale degli ID consente di gestire gli utenti del database da un unico punto e semplifica la gestione delle autorizzazioni.Central ID management provides a single place to manage database users and simplifies permission management. Ecco alcuni vantaggi:Benefits include the following:

  • Offre un'alternativa all'autenticazione di SQL Server.It provides an alternative to SQL Server authentication.

  • Consente di arrestare la proliferazione di identità utente tra i server.It helps stop the proliferation of user identities across servers.

  • Consente la rotazione delle password in un'unica posizione.It allows password rotation in a single place.

  • I clienti possono gestire le autorizzazioni del database usando gruppi (Azure AD) esterni.Customers can manage database permissions using external (Azure AD) groups.

  • Può eliminare l'archiviazione delle password abilitando l'autenticazione integrata di Windows e altre forme di autenticazione supportate da Azure Active Directory.It can eliminate storing passwords by enabling integrated Windows authentication and other forms of authentication supported by Azure Active Directory.

  • L'autenticazione di Azure SD usa gli utenti di un database indipendente per autenticare le identità a livello di database.Azure AD authentication uses contained database users to authenticate identities at the database level.

  • Azure AD supporta l'autenticazione basata su token per le applicazioni che si connettono al database SQL e a SQL Istanza gestita.Azure AD supports token-based authentication for applications connecting to SQL Database and SQL Managed Instance.

  • Azure AD autenticazione supporta:Azure AD authentication supports:

  • Azure AD supporta le connessioni da SQL Server Management Studio che usano l'autenticazione universale di Active Directory, che include Multi-Factor Authentication.Azure AD supports connections from SQL Server Management Studio that use Active Directory Universal Authentication, which includes Multi-Factor Authentication. Multi-Factor Authentication include l'autenticazione avanzata con una gamma di semplici opzioni di verifica, ad esempio telefonata, SMS, smart card con pin o notifica tramite app per dispositivi mobili.Multi-Factor Authentication includes strong authentication with a range of easy verification options — phone call, text message, smart cards with pin, or mobile app notification. Per altre informazioni, vedere supporto di SSMS per Azure AD multi-factor authentication con il database SQL di Azure, sql istanza gestita e la sinapsi di AzureFor more information, see SSMS support for Azure AD Multi-Factor Authentication with Azure SQL Database, SQL Managed Instance, and Azure Synapse

  • Azure AD supporta connessioni analoghe da SQL Server Data Tools (SSDT) che usano l'autenticazione interattiva di Active Directory.Azure AD supports similar connections from SQL Server Data Tools (SSDT) that use Active Directory Interactive Authentication. Per ulteriori informazioni, vedere supporto Azure Active Directory in SQL Server Data Tools (SSDT)For more information, see Azure Active Directory support in SQL Server Data Tools (SSDT)

Nota

La connessione a un'istanza di SQL Server in esecuzione in una macchina virtuale (VM) di Azure non è supportata con un account di Azure Active Directory.Connecting to a SQL Server instance that's running on an Azure virtual machine (VM) is not supported using an Azure Active Directory account. Usare un account Active Directory di dominio.Use a domain Active Directory account instead.

I passaggi di configurazione includono le procedure seguenti per configurare e usare l'autenticazione di Azure Active Directory.The configuration steps include the following procedures to configure and use Azure Active Directory authentication.

  1. Creare e popolare un'istanza di Azure AD.Create and populate Azure AD.
  2. Facoltativo: associare o modificare l'istanza di Active Directory attualmente associata alla sottoscrizione di Azure.Optional: Associate or change the active directory that is currently associated with your Azure Subscription.
  3. Creare un amministratore Azure Active Directory.Create an Azure Active Directory administrator.
  4. Configurare i computer client.Configure your client computers.
  5. Creare gli utenti di database indipendente nel database di cui è stato eseguito il mapping alle identità di Azure AD.Create contained database users in your database mapped to Azure AD identities.
  6. Connettersi al database usando le identità di Azure AD.Connect to your database by using Azure AD identities.

Nota

Per informazioni su come creare e popolare Azure AD e quindi configurare Azure AD con il database SQL di Azure, SQL Istanza gestita e la sinapsi di Azure, vedere configurare Azure ad con il database SQL di Azure.To learn how to create and populate Azure AD, and then configure Azure AD with Azure SQL Database, SQL Managed Instance, and Azure Synapse, see Configure Azure AD with Azure SQL Database.

Architettura di attendibilitàTrust architecture

  • Solo la parte cloud di Azure AD, database SQL, SQL Istanza gestita e la sinapsi di Azure viene considerata per supportare Azure AD password utente Native.Only the cloud portion of Azure AD, SQL Database, SQL Managed Instance, and Azure Synapse is considered to support Azure AD native user passwords.
  • Per supportare le credenziali di Windows Single Sign-On (o utente/password per le credenziali di Windows), usare Azure Active Directory le credenziali di un dominio federato o gestito configurato per l'Single Sign-On trasparente per l'autenticazione pass-through e hash delle password.To support Windows single sign-on credentials (or user/password for Windows credential), use Azure Active Directory credentials from a federated or 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.
  • Per supportare l'autenticazione federata o l'autenticazione utente/password per le credenziali di Windows, è necessaria la comunicazione con il blocco AD FS.To support Federated authentication (or user/password for Windows credentials), the communication with ADFS block is required.

Per ulteriori informazioni su Azure AD identità ibride, l'installazione e la sincronizzazione, vedere gli articoli seguenti:For more information on Azure AD hybrid identities, the setup, and synchronization, see the following articles:

Per un'autenticazione federata di esempio con l'infrastruttura ADFS (oppure utente/password per le credenziali di Windows), vedere il diagramma seguente.For a sample federated authentication with ADFS infrastructure (or user/password for Windows credentials), see the diagram below. Le frecce indicano i percorsi di comunicazione.The arrows indicate communication pathways.

diagramma di autenticazione di aad

Il diagramma seguente indica le relazioni federative, di trust e di hosting che consentono a un client di connettersi a un database inviando un token, che viene autenticato da Azure Active Directory e considerato attendibile dal database.The following diagram indicates the federation, trust, and hosting relationships that allow a client to connect to a database by submitting a token. Il cliente 1 può rappresentare un'istanza di Azure Active Directory con utenti nativi o con utenti federati.The token is authenticated by an Azure AD, and is trusted by the database. Il cliente 1 può rappresentare una Azure Active Directory con utenti nativi o una Azure AD con utenti federati.Customer 1 can represent an Azure Active Directory with native users or an Azure AD with federated users. Il cliente 2 rappresenta una possibile soluzione, inclusi gli utenti importati, in questo esempio proveniente da un Azure Active Directory federato con ADFS sincronizzato con Azure Active Directory.Customer 2 represents a possible solution including imported users, in this example coming from a federated Azure Active Directory with ADFS being synchronized with Azure Active Directory. È importante comprendere che l'accesso a un database con l'autenticazione di Azure AD richiede che la sottoscrizione di hosting sia associata ad Azure AD.It's important to understand that access to a database using Azure AD authentication requires that the hosting subscription is associated to the Azure AD. È necessario usare la stessa sottoscrizione per creare il database SQL di Azure, SQL Istanza gestita o le risorse di Azure sinapsi.The same subscription must be used to create the Azure SQL Database, SQL Managed Instance, or Azure Synapse resources.

relazione di sottoscrizione

Struttura dell'account amministratoreAdministrator structure

Quando si usa l'autenticazione di Azure AD, sono disponibili due account amministratore: l'amministratore del database SQL di Azure originale e l'amministratore di Azure AD.When using Azure AD authentication, there are two Administrator accounts: the original Azure SQL Database administrator and the Azure AD administrator. Gli stessi concetti si applicano alla sinapsi di Azure.The same concepts apply to Azure Synapse. Solo l'amministratore basato su un account Azure AD può creare il primo utente di database indipendente di Azure AD in un database utente.Only the administrator based on an Azure AD account can create the first Azure AD contained database user in a user database. L'account di accesso dell'amministratore di Azure AD può essere un utente o un gruppo di Azure AD.The Azure AD administrator login can be an Azure AD user or an Azure AD group. Quando l'amministratore è un account di gruppo, può essere usato da qualsiasi membro del gruppo, abilitando più Azure AD amministratori per il server.When the administrator is a group account, it can be used by any group member, enabling multiple Azure AD administrators for the server. L'uso di un account di gruppo come amministratore migliora la gestibilità consentendo di aggiungere e rimuovere in modo centralizzato i membri del gruppo in Azure AD senza modificare gli utenti o le autorizzazioni nel database SQL o nella sinapsi di Azure.Using group account as an administrator enhances manageability by allowing you to centrally add and remove group members in Azure AD without changing the users or permissions in SQL Database or Azure Synapse. È possibile configurare un solo amministratore di Azure AD (utente o gruppo) alla volta.Only one Azure AD administrator (a user or group) can be configured at any time.

struttura di amministrazione

AutorizzazioniPermissions

Per creare nuovi utenti, è necessario avere l'autorizzazione ALTER ANY USER sul database.To create new users, you must have the ALTER ANY USER permission in the database. L'autorizzazione ALTER ANY USER può esser concessa a qualsiasi utente di database.The ALTER ANY USER permission can be granted to any database user. L'autorizzazione ALTER ANY USER è assegnata anche agli account amministratore del server, agli utenti di database con l'autorizzazione CONTROL ON DATABASE o ALTER ON DATABASE per tale database e ai membri del ruolo del database db_owner.The ALTER ANY USER permission is also held by the server administrator accounts, and database users with the CONTROL ON DATABASE or ALTER ON DATABASE permission for that database, and by members of the db_owner database role.

Per creare un utente di database indipendente nel database SQL di Azure, in SQL Istanza gestita o in una sinapsi di Azure, è necessario connettersi al database o all'istanza usando un'identità Azure AD.To create a contained database user in Azure SQL Database, SQL Managed Instance, or Azure Synapse, you must connect to the database or instance using an Azure AD identity. Per creare il primo utente di database indipendente, è necessario connettersi al database tramite un amministratore di Azure AD (che corrisponde al proprietario del database).To create the first contained database user, you must connect to the database by using an Azure AD administrator (who is the owner of the database). Questa operazione è illustrata in configurare e gestire l'autenticazione Azure Active Directory con il database SQL o la sinapsi di Azure.This is demonstrated in Configure and manage Azure Active Directory authentication with SQL Database or Azure Synapse. Azure AD autenticazione è possibile solo se è stato creato l'amministratore Azure AD per il database SQL di Azure, SQL Istanza gestita o la sinapsi di Azure.Azure AD authentication is only possible if the Azure AD admin was created for Azure SQL Database, SQL Managed Instance, or Azure Synapse. Se l'amministratore di Azure Active Directory è stato rimosso dal server, gli utenti di Azure Active Directory esistenti creati in precedenza all'interno di SQL Server non possono più connettersi al database con le credenziali di Azure Active Directory.If the Azure Active Directory admin was removed from the server, existing Azure Active Directory users created previously inside SQL Server can no longer connect to the database using their Azure Active Directory credentials.

Funzionalità e limitazioni di Azure ADAzure AD features and limitations

  • È possibile eseguire il provisioning dei seguenti membri di Azure AD per il database SQL di Azure:The following members of Azure AD can be provisioned for Azure SQL Database:

  • Azure AD utenti che fanno parte di un gruppo che dispone di un db_owner ruolo del server non possono usare la sintassi di creazione di credenziali con ambito database per il database SQL di Azure e la sinapsi di Azure.Azure AD users that are part of a group that has db_owner server role cannot use the CREATE DATABASE SCOPED CREDENTIAL syntax against Azure SQL Database and Azure Synapse. Verrà visualizzato l'errore seguente:You will see the following error:

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either does not exist or you do not have permission to use it.

    Assegnare il ruolo db_owner direttamente all'utente di Azure AD per mitigare il problema CREATE DATABASE SCOPED CREDENTIAL.Grant the db_owner role directly to the individual Azure AD user to mitigate the CREATE DATABASE SCOPED CREDENTIAL issue.

  • Queste funzioni di sistema restituiscono valori NULL quando vengono eseguite nell'ambito di entità di sicurezza di Azure AD:These system functions return NULL values when executed under Azure AD principals:

    • SUSER_ID()
    • SUSER_NAME(<admin ID>)
    • SUSER_SNAME(<admin SID>)
    • SUSER_ID(<admin name>)
    • SUSER_SID(<admin name>)

Istanza gestita di SQLSQL Managed Instance

  • Azure AD entità server (account di accesso) e gli utenti sono supportati per SQL istanza gestita.Azure AD server principals (logins) and users are supported for SQL Managed Instance.
  • L'impostazione di Azure AD entità server (account di accesso) con mapping a un gruppo di Azure AD come proprietario del database non è supportata in SQL istanza gestita.Setting Azure AD server principals (logins) mapped to an Azure AD group as database owner is not supported in SQL Managed Instance.
    • Un'estensione è che quando un gruppo viene aggiunto come parte del dbcreator ruolo del server, gli utenti di questo gruppo possono connettersi al istanza gestita SQL e creare nuovi database, ma non potranno accedere al database.An extension of this is that when a group is added as part of the dbcreator server role, users from this group can connect to the SQL Managed Instance and create new databases, but will not be able to access the database. Il nuovo proprietario del database, infatti, è SA e non l'utente di Azure AD.This is because the new database owner is SA, and not the Azure AD user. Questo problema non si verifica se al ruolo del server dbcreator si aggiunge il singolo utente.This issue does not manifest if the individual user is added to the dbcreator server role.
  • La gestione e l'esecuzione di processi di SQL Agent sono supportate per Azure AD entità server (account di accesso).SQL Agent management and jobs execution are supported for Azure AD server principals (logins).
  • Le operazioni di backup e ripristino del database possono essere eseguite dalle entità server (account di accesso) di Azure AD.Database backup and restore operations can be executed by Azure AD server principals (logins).
  • È supportato il controllo di tutte le istruzioni relative agli eventi di autenticazione e alle entità server (account di accesso) di Azure AD.Auditing of all statements related to Azure AD server principals (logins) and authentication events is supported.
  • È supportata la connessione amministrativa dedicata per le entità server (account di accesso) di Azure AD membri del ruolo del server sysadmin.Dedicated administrator connection for Azure AD server principals (logins) which are members of sysadmin server role is supported.
    • È supportata tramite l'utilità SQLCMD e SQL Server Management Studio.Supported through SQLCMD Utility and SQL Server Management Studio.
  • Sono supportati i trigger di accesso per gli eventi di accesso provenienti dalle entità server (account di accesso) di Azure AD.Logon triggers are supported for logon events coming from Azure AD server principals (logins).
  • Usando un'entità server (account di accesso) di Azure AD è possibile configurare Service Broker e la posta elettronica del database.Service Broker and DB mail can be setup using an Azure AD server principal (login).

Connettersi usando le identità di Azure ADConnect by using Azure AD identities

L'autenticazione di Azure Active Directory supporta i metodi seguenti per la connessione a un database con le identità di Azure AD:Azure Active Directory authentication supports the following methods of connecting to a database using Azure AD identities:

  • Password di Azure Active DirectoryAzure Active Directory Password
  • Autenticazione integrata di Azure Active DirectoryAzure Active Directory Integrated
  • Azure Active Directory universale con Multi-Factor AuthenticationAzure Active Directory Universal with Multi-Factor Authentication
  • Con l'autenticazione del token dell'applicazioneUsing Application token authentication

Per Azure AD entità server (account di accesso) sono supportati i metodi di autenticazione seguenti:The following authentication methods are supported for Azure AD server principals (logins):

  • Password di Azure Active DirectoryAzure Active Directory Password
  • Autenticazione integrata di Azure Active DirectoryAzure Active Directory Integrated
  • Azure Active Directory universale con Multi-Factor AuthenticationAzure Active Directory Universal with Multi-Factor Authentication

Altre considerazioniAdditional considerations

  • Per migliorare la gestibilità, è consigliabile effettuare il provisioning di un gruppo di Azure AD dedicato come amministratore.To enhance manageability, we recommend you provision a dedicated Azure AD group as an administrator.
  • È possibile configurare un solo amministratore di Azure AD (utente o gruppo) per un server nel database SQL o in una sinapsi di Azure in qualsiasi momento.Only one Azure AD administrator (a user or group) can be configured for a server in SQL Database or Azure Synapse at any time.
    • L'aggiunta di Azure AD entità server (account di accesso) per SQL Istanza gestita consente di creare più entità di Azure AD server (account di accesso) che possono essere aggiunte al sysadmin ruolo.The addition of Azure AD server principals (logins) for SQL Managed Instance allows the possibility of creating multiple Azure AD server principals (logins) that can be added to the sysadmin role.
  • Solo un amministratore Azure AD per il server può connettersi inizialmente al server o all'istanza gestita usando un account di Azure Active Directory.Only an Azure AD administrator for the server can initially connect to the server or managed instance using an Azure Active Directory account. L'amministratore di Active Directory può configurare gli utenti del database di Azure AD successivi.The Active Directory administrator can configure subsequent Azure AD database users.
  • È consigliabile impostare il timeout di connessione su 30 secondi.We recommend setting the connection timeout to 30 seconds.
  • SQL Server 2016 Management Studio e SQL Server Data Tools per Visual Studio 2015, versione 14.0.60311.1 di aprile 2016 o successiva, supportano l'autenticazione di Azure Active Directory.SQL Server 2016 Management Studio and SQL Server Data Tools for Visual Studio 2015 (version 14.0.60311.1April 2016 or later) support Azure Active Directory authentication. L'autenticazione di Azure AD è supportata dal provider di dati .NET Framework per server SQL a partire da .NET Framework versione 4.6.(Azure AD authentication is supported by the .NET Framework Data Provider for SqlServer; at least version .NET Framework 4.6). Pertanto, le versioni più recenti di questi strumenti e applicazioni livello dati (DAC e BACPAC) possono usare l'autenticazione Azure AD.Therefore the newest versions of these tools and data-tier applications (DAC and BACPAC) can use Azure AD authentication.
  • A partire dalla versione 15.0.1, l' utilità sqlcmd e l' utilità bcp supportano Active Directory autenticazione interattiva con multi-factor authentication.Beginning with version 15.0.1, sqlcmd utility and bcp utility support Active Directory Interactive authentication with Multi-Factor Authentication.
  • SQL Server Data Tools per Visual Studio 2015 richiede almeno la versione 14.0.60311.1 di aprile 2016.SQL Server Data Tools for Visual Studio 2015 requires at least the April 2016 version of the Data Tools (version 14.0.60311.1). Attualmente, gli utenti Azure AD non vengono visualizzati nella Esplora oggetti di SSDT.Currently, Azure AD users are not shown in SSDT Object Explorer. Come soluzione alternativa è possibile visualizzare gli utenti in sys.database_principals.As a workaround, view the users in sys.database_principals.
  • Microsoft JDBC Driver 6.0 per server SQL supporta l'autenticazione di Azure AD.Microsoft JDBC Driver 6.0 for SQL Server supports Azure AD authentication. Vedere anche l'argomento su come impostare le proprietà della connessione.Also, see Setting the Connection Properties.
  • PolyBase non può eseguire l'autenticazione di Azure AD.PolyBase cannot authenticate by using Azure AD authentication.
  • Azure AD autenticazione è supportata per il database SQL di Azure e la sinapsi di Azure usando il portale di Azure importare database ed esportare i pannelli del database .Azure AD authentication is supported for Azure SQL Database and Azure Synapse by using the Azure portal Import Database and Export Database blades. L'importazione e l'esportazione tramite l'autenticazione Azure AD è supportata anche da un comando di PowerShell.Import and export using Azure AD authentication is also supported from a PowerShell command.
  • Azure AD autenticazione è supportata per il database SQL, SQL Istanza gestita e la sinapsi di Azure tramite l'interfaccia della riga di comando.Azure AD authentication is supported for SQL Database, SQL Managed Instance, and Azure Synapse with using the CLI. Per altre informazioni, vedere configurare e gestire l'autenticazione di Azure ad con il database SQL o la sinapsi di Azure e SQL Server-AZ SQL Server.For more information, see Configure and manage Azure AD authentication with SQL Database or Azure Synapse and SQL Server - az sql server.

Passaggi successiviNext steps