Esercitazione: Garantire la sicurezza dell'istanza gestita del database SQL di Azure con le entità server (account di accesso) di Azure ADTutorial: Managed instance security in Azure SQL Database using Azure AD server principals (logins)

L'istanza gestita offre quasi tutte le funzionalità di sicurezza incluse nella versione più recente del motore di database di SQL Server locale (Enterprise Edition):Managed instance provides nearly all security features that the latest SQL Server on-premises (Enterprise Edition) Database Engine has:

  • Limitazione dell'accesso in un ambiente isolatoLimiting access in an isolated environment
  • Uso di meccanismi di autenticazione che verificano l'identità (Azure AD, Autenticazione SQL)Use authentication mechanisms that require identity (Azure AD, SQL Authentication)
  • Concedere autorizzazioni tramite appartenenze e autorizzazioni basate sui ruoliUse authorization with role-based memberships and permissions
  • Abilitare le funzionalità di sicurezzaEnable security features

In questa esercitazione si apprenderà come:In this tutorial, you learn how to:

  • Creare un'entità server (account di accesso) di Azure Active Directory (AD) per un'istanza gestitaCreate an Azure Active Directory (AD) server principal (login) for a managed instance
  • Concedere le autorizzazioni alle entità server (account di accesso) di Azure AD in un'istanza gestitaGrant permissions to Azure AD server principals (logins) in a managed instance
  • Creare utenti di Azure AD da entità server (account di accesso) di Azure ADCreate Azure AD users from Azure AD server principals (logins)
  • Assegnare autorizzazioni agli utenti di Azure AD e gestire la sicurezza dei databaseAssign permissions to Azure AD users and manage database security
  • Usare la rappresentazione con utenti di Azure ADUse impersonation with Azure AD users
  • Usare query tra database con utenti di Azure ADUse cross-database queries with Azure AD users
  • Informazioni sulle funzionalità di sicurezza come la protezione da minacce, il controllo, il data masking e la crittografiaLearn about security features, such as threat protection, auditing, data masking, and encryption

Per altre informazioni, vedere gli articoli sulla panoramica e sulle capacità dell'istanza gestita di database SQL di Azure.To learn more, see the Azure SQL Database managed instance overview and capabilities articles.

PrerequisitiPrerequisites

Per completare questa esercitazione, verificare di avere i prerequisiti seguenti:To complete the tutorial, make sure you have the following prerequisites:

Limitazione dell'accesso all'istanza gestitaLimiting access to your managed instance

Le istanze gestite sono accessibili tramite un indirizzo IP privato.Managed instances can be accessed through a private IP address. Analogamente a quanto avviene con un ambiente locale Server isolato, le applicazioni o gli utenti devono accedere alla rete dell'istanza gestita (rete virtuale) prima di poter stabilire una connessione.Much like an isolated SQL Server on-premises environment, applications or users need access to the managed instance network (VNet) before a connection can be established. Per altre informazioni, vedere l'articolo Connettere l'applicazione a un'istanza gestita.For more information, see the following article, Connect your application to a managed instance.

È anche possibile configurare nell'istanza gestita un endpoint di servizio che consente le connessioni pubbliche, in modo analogo al database SQL di Azure.It is also possible to configure a service endpoint on the managed instance, which allows for public connections, in the same fashion as Azure SQL Database. Per altre informazioni, vedere l'articolo Configurare l'endpoint pubblico nell'istanza gestita di database SQL di Azure.For more information, see the following article, Configure public endpoint in Azure SQL Database managed instance.

Nota

Le regole del firewall del database SQL non si applicano neanche in caso di endpoint di servizio abilitati.Even with service endpoints enabled, SQL Database firewall rules do not apply. Per gestire la connettività, l'istanza gestita è dotata di un proprio firewall predefinito.Managed instance has its own built-in firewall to manage connectivity.

Creare un'entità server (account di accesso) di Azure AD per un'istanza gestita con SQL Server Management StudioCreate an Azure AD server principal (login) for a managed instance using SSMS

La prima entità server di Azure AD (account di accesso) può essere creata tramite l'account di SQL Server standard (non Azure AD), ovvero sysadmin, o l'amministratore di Azure AD per l'istanza gestita creata durante il processo di provisioning.The first Azure AD server principal (login) can be created by the standard SQL Server account (non-azure AD) that is a sysadmin, or the Azure AD admin for the managed instance created during the provisioning process. Per altre informazioni, vedere Effettuare il provisioning di un amministratore di Azure Active Directory per l'istanza gestita.For more information, see Provision an Azure Active Directory administrator for your managed instance. Questa funzionalità è cambiata rispetto alla GA delle entità server di Azure AD.This functionality has changed since the GA of Azure AD server principals.

Per esempi relativi alla connessione all'istanza gestita, vedere gli articoli seguenti:See the following articles for examples of connecting to your managed instance:

  1. Accedere all'istanza gestita con un account di SQL Server standard (non Azure AD), ovvero sysadmin, o un amministratore di Azure AD per istanza gestita usando SQL Server Management Studio.Log into your managed instance using a standard SQL Server account (non-azure AD) that is a sysadmin or an Azure AD admin for MI, using SQL Server Management Studio.

  2. In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.In Object Explorer, right-click the server and choose New Query.

  3. Nella finestra di query usare la sintassi seguente per creare un account di accesso per un account Azure AD locale:In the query window, use the following syntax to create a login for a local Azure AD account:

    USE master
    GO
    CREATE LOGIN login_name FROM EXTERNAL PROVIDER
    GO
    

    Questo esempio mostra come creare un account di accesso per l'account nativeuser@aadsqlmi.onmicrosoft.com.This example creates a login for the account nativeuser@aadsqlmi.onmicrosoft.com.

    USE master
    GO
    CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER
    GO
    
  4. Sulla barra degli strumenti selezionare Esegui per creare l'account di accesso.On the toolbar, select Execute to create the login.

  5. Verificare l'account di accesso appena aggiunto eseguendo il comando T-SQL seguente:Check the newly added login, by executing the following T-SQL command:

    SELECT *  
    FROM sys.server_principals;  
    GO
    

    native-login.png

Per altre informazioni, vedere CREATE LOGIN.For more information, see CREATE LOGIN.

Concessione delle autorizzazioni per consentire l a creazione di account di accesso dell'istanza gestitaGranting permissions to allow the creation of managed instance logins

Per creare altre entità server (account di accesso) di Azure AD, è necessario concedere autorizzazioni o ruoli di SQL Server all'entità di sicurezza (SQL o Azure AD).To create other Azure AD server principals (logins), SQL Server roles or permissions must be granted to the principal (SQL or Azure AD).

Autenticazione in SQLSQL authentication

  • Se l'account di accesso è un'entità di sicurezza SQL, solo gli account di accesso che fanno parte del ruolo sysadmin possono usare il comando per creare gli account di accesso per un account Azure AD.If the login is a SQL Principal, only logins that are part of the sysadmin role can use the create command to create logins for an Azure AD account.

Autenticazione di Azure ADAzure AD authentication

  • Per consentire all'entità server (account di accesso) di Azure AD appena creata di creare altri account di accesso per altri utenti, gruppi o applicazioni di Azure AD, concedere all'account di accesso il ruolo del server sysadmin o securityadmin.To allow the newly created Azure AD server principal (login) the ability to create other logins for other Azure AD users, groups, or applications, grant the login sysadmin or securityadmin server role.
  • Per consentire all'entità server (account di accesso) di Azure AD di creare altre entità server (account di accesso) di Azure AD, è necessario concedere almeno l'autorizzazione ALTER ANY LOGIN.At a minimum, ALTER ANY LOGIN permission must be granted to the Azure AD server principal (login) to create other Azure AD server principals (logins).
  • Per impostazione predefinita, le autorizzazioni standard concesse alle entità server (account di accesso) di Azure AD appena create nel database master sono: CONNECT SQL e VIEW ANY DATABASE.By default, the standard permission granted to newly created Azure AD server principals (logins) in master is: CONNECT SQL and VIEW ANY DATABASE.
  • Il ruolo del server sysadmin può essere concesso a più entità server (account di accesso) AD Azure all'interno di un'istanza gestita.The sysadmin server role can be granted to many Azure AD server principals (logins) within a managed instance.

Per aggiungere l'account di accesso al ruolo del server sysadmin:To add the login to the sysadmin server role:

  1. Accedere di nuovo all'istanza gestita oppure usare la connessione esistente con l'amministratore di Azure AD o un'entità di sicurezza SQL, ovvero sysadmin.Log into the managed instance again, or use the existing connection with the Azure AD admin or SQL Principal that is a sysadmin.

  2. In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.In Object Explorer, right-click the server and choose New Query.

  3. Concedere all'entità server (account di accesso) di Azure AD il ruolo del server sysadmin usando la sintassi T-SQL seguente:Grant the Azure AD server principal (login) the sysadmin server role by using the following T-SQL syntax:

    ALTER SERVER ROLE sysadmin ADD MEMBER login_name
    GO
    

    L'esempio seguente mostra come concedere il ruolo del server sysadmin all'account di accesso nativeuser@aadsqlmi.onmicrosoft.comThe following example grants the sysadmin server role to the login nativeuser@aadsqlmi.onmicrosoft.com

    ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com]
    GO
    

Creare altre entità server (account di accesso) AD Azure con SQL Server Management StudioCreate additional Azure AD server principals (logins) using SSMS

Dopo aver creato l'entità server (account di accesso) di Azure AD e aver concesso i privilegi di sysadmin, tale account può creare altri account di accesso usando la clausola FROM EXTERNAL PROVIDER con CREATE LOGIN.Once the Azure AD server principal (login) has been created, and provided with sysadmin privileges, that login can create additional logins using the FROM EXTERNAL PROVIDER clause with CREATE LOGIN.

  1. Connettersi all'istanza gestita con l'entità server (account di accesso) di Azure AD usando SQL Server Management Studio.Connect to the managed instance with the Azure AD server principal (login), using SQL Server Management Studio. Immettere il nome dell'istanza gestita.Enter your managed instance host name. Per l'autenticazione in SSMS è possibile scegliere tra tre opzioni quando si esegue l'accesso con un account Azure AD:For Authentication in SSMS, there are three options to choose from when logging in with an Azure AD account:

  2. Selezionare Active Directory - Universale con supporto MFA.Select Active Directory - Universal with MFA support. Viene visualizzata una finestra di accesso Multi-Factor Authentication (MFA).This brings up a Multi-Factor Authentication (MFA) login window. Accedere con la password di Azure AD.Sign in with your Azure AD password.

    mfa-login-prompt.png

  3. In Esplora oggetti di SSMS fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.In SSMS Object Explorer, right-click the server and choose New Query.

  4. Nella finestra di query usare la sintassi seguente per creare un account di accesso per un altro account Azure AD:In the query window, use the following syntax to create a login for another Azure AD account:

    USE master
    GO
    CREATE LOGIN login_name FROM EXTERNAL PROVIDER
    GO
    

    Questo esempio mostra come creare un account di accesso per l'utente di Azure AD bob@aadsqlmi.net, il cui dominio aadsqlmi.net è federato con l'istanza aadsqlmi.onmicrosoft.com di Azure AD.This example creates a login for the Azure AD user bob@aadsqlmi.net, whose domain aadsqlmi.net is federated with the Azure AD aadsqlmi.onmicrosoft.com.

    Eseguire il comando T-SQL seguente.Execute the following T-SQL command. Gli account Azure AD federati sono le sostituzioni dell'istanza gestita per account di accesso e utenti Windows locali.Federated Azure AD accounts are the managed instance replacements for on-premises Windows logins and users.

    USE master
    GO
    CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER
    GO
    
  5. Creare un database nell'istanza gestita usando la sintassi CREATE DATABASE.Create a database in the managed instance using the CREATE DATABASE syntax. Questo database verrà usato per testare gli account di accesso nella sezione successiva.This database will be used to test user logins in the next section.

    1. In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.In Object Explorer, right-click the server and choose New Query.

    2. Nella finestra di query usare la sintassi seguente per creare un database denominato MyMITestDB.In the query window, use the following syntax to create a database named MyMITestDB.

      CREATE DATABASE MyMITestDB;
      GO
      
  6. Creare un account di accesso dell'istanza gestita per un gruppo in Azure AD.Create a managed instance login for a group in Azure AD. Il gruppo deve essere già presente in Azure AD prima di poter aggiungere l'account di accesso all'istanza gestita.The group will need to exist in Azure AD before you can add the login to managed instance. Vedere Creare un gruppo di base e aggiungere membri con Azure Active Directory.See Create a basic group and add members using Azure Active Directory. Creare un gruppo mygroup e aggiungere membri a tale gruppo.Create a group mygroup and add members to this group.

  7. Aprire una nuova finestra di query in SQL Server Management Studio.Open a new query window in SQL Server Management Studio.

    Questo esempio presuppone l'esistenza di un gruppo denominato mygroup in Azure AD.This example assumes there exist a group called mygroup in the Azure AD. Eseguire il comando seguente:Execute the following command:

    USE master
    GO
    CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
    GO
    
  8. A scopo di test, accedere all'istanza gestita con l'account di accesso o il gruppo appena creato.As a test, log into the managed instance with the newly created login or group. Aprire una nuova connessione all'istanza gestita e usare il nuovo account di accesso per l'autenticazione.Open a new connection to the managed instance, and use the new login when authenticating.

  9. In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query per la nuova connessione.In Object Explorer, right-click the server and choose New Query for the new connection.

  10. Per verificare le autorizzazioni del server per l'entità server (account di accesso) di Azure AD appena creata, eseguire il comando seguente:Check server permissions for the newly created Azure AD server principal (login) by executing the following command:

    SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE')
    GO
    

Nota

Gli utenti guest di Azure AD sono supportati per gli account di accesso dell'istanza gestita solo quando vengono aggiunti in un gruppo di Azure AD.Azure AD guest users are supported for managed instance logins, only when added as part of an Azure AD Group. Per utente guest di Azure AD si intende un account invitato da un'altra istanza di Azure AD all'istanza di Azure AD cui appartiene l'istanza gestita.An Azure AD guest user is an account that is invited to the Azure AD that the managed instance belongs to, from another Azure AD. Ad esempio, è possibile aggiungere joe@contoso.com (account Azure AD) o steve@outlook.com (account MSA) a un gruppo nell'istanza aadsqlmi di Azure AD.For example, joe@contoso.com (Azure AD Account) or steve@outlook.com (MSA Account) can be added to a group in the Azure AD aadsqlmi. Dopo aver aggiunto gli utenti a un gruppo, è possibile creare un account di accesso nel database master dell'istanza gestita per il gruppo usando la sintassi CREATE LOGIN.Once the users are added to a group, a login can be created in the managed instance master database for the group using the CREATE LOGIN syntax. Gli utenti guest che fanno parte di questo gruppo possono connettersi all'istanza gestita usando gli account di accesso correnti, ad esempio joe@contoso.com o steve@outlook.com.Guest users who are members of this group can connect to the managed instance using their current logins (For example, joe@contoso.com or steve@outlook.com).

Creare un utente di Azure AD dall'entità server (account di accesso) di Azure AD e concedere le autorizzazioniCreate an Azure AD user from the Azure AD server principal (login) and give permissions

Il funzionamento delle autorizzazioni per i singoli database nell'istanza gestita è analogo a quello di SQL Server locale.Authorization to individual databases works much in the same way in managed instance as it does with SQL Server on-premises. È possibile creare un utente da un account di accesso esistente in un database e concedere le autorizzazioni per il database oppure aggiungerlo a un ruolo del database.A user can be created from an existing login in a database, and be provided with permissions on that database, or added to a database role.

A questo punto, dopo aver creato un database denominato MyMITestDB e un account di accesso che dispone solo delle autorizzazioni predefinite, il passaggio successivo consiste nel creare un utente da tale account di accesso.Now that we've created a database called MyMITestDB, and a login that only has default permissions, the next step is to create a user from that login. Al momento, l'account di accesso può connettersi all'istanza gestita e visualizzare tutti i database, ma non può interagire con essi.At the moment, the login can connect to the managed instance, and see all the databases, but can't interact with the databases. Se si accede con l'account Azure AD con le autorizzazioni predefinite e si prova a espandere il database appena creato, verrà visualizzato l'errore seguente:If you sign in with the Azure AD account that has the default permissions, and try to expand the newly created database, you'll see the following error:

ssms-db-not-accessible.png

Per altre informazioni sulla concessione delle autorizzazioni per i database, vedere Introduzione alle autorizzazioni del motore di database.For more information on granting database permissions, see Getting Started with Database Engine Permissions.

Creare un utente di Azure AD e una tabella di esempioCreate an Azure AD user and create a sample table

  1. Accedere all'istanza gestita con un account sysadmin usando SQL Server Management Studio.Log into your managed instance using a sysadmin account using SQL Server Management Studio.

  2. In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.In Object Explorer, right-click the server and choose New Query.

  3. Nella finestra di query usare la sintassi seguente per creare un utente di Azure AD da un'entità server (account di accesso) di Azure AD:In the query window, use the following syntax to create an Azure AD user from an Azure AD server principal (login):

    USE <Database Name> -- provide your database name
    GO
    CREATE USER user_name FROM LOGIN login_name
    GO
    

    L'esempio seguente mostra come creare un utente bob@aadsqlmi.net dall'account di accesso bob@aadsqlmi.net:The following example creates a user bob@aadsqlmi.net from the login bob@aadsqlmi.net:

    USE MyMITestDB
    GO
    CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net]
    GO
    
  4. È anche possibile creare un utente di Azure AD da un'entità server (account di accesso) di Azure AD che corrisponde a un gruppo.It's also supported to create an Azure AD user from an Azure AD server principal (login) that is a group.

    L'esempio seguente mostra come creare un account di accesso per il gruppo di Azure AD mygroup presente nell'istanza di Azure AD.The following example creates a login for the Azure AD group mygroup that exists in your Azure AD.

    USE MyMITestDB
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    

    Tutti gli utenti che appartengono a mygroup possono accedere al database MyMITestDB.All users that belong to mygroup can access the MyMITestDB database.

    Importante

    Quando si crea un utente USER da un'entità server (account di accesso) di Azure AD, specificare per user_name lo stesso valore di login_name indicato in LOGIN.When creating a USER from an Azure AD server principal (login), specify the user_name as the same login_name from LOGIN.

    Per altre informazioni, vedere CREATE USER.For more information, see CREATE USER.

  5. In una nuova finestra di query creare una tabella di test usando il comando T-SQL seguente:In a new query window, create a test table using the following T-SQL command:

    USE MyMITestDB
    GO
    CREATE TABLE TestTable
    (
    AccountNum varchar(10),
    City varchar(255),
    Name varchar(255),
    State varchar(2)
    );
    
  6. Creare una connessione in SQL Server Management Studio con l'utente che è stato creato.Create a connection in SSMS with the user that was created. Si noterà che non è possibile visualizzare la tabella TestTable che è stato creato da sysadmin in precedenza.You'll notice that you cannot see the table TestTable that was created by the sysadmin earlier. È necessario fornire all'utente le autorizzazioni per leggere i dati dal database.We need to provide the user with permissions to read data from the database.

  7. È possibile verificare l'autorizzazione corrente disponibile per l'utente eseguendo il comando seguente:You can check the current permission the user has by executing the following command:

    SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE')
    GO
    

Aggiungere utenti a ruoli a livello di databaseAdd users to database-level roles

Per consentire all'utente di visualizzare i dati nel database, è possibile concedergli i ruoli a livello di database.For the user to see data in the database, we can provide database-level roles to the user.

  1. Accedere all'istanza gestita con un account sysadmin usando SQL Server Management Studio.Log into your managed instance using a sysadmin account using SQL Server Management Studio.

  2. In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.In Object Explorer, right-click the server and choose New Query.

  3. Concedere all'utente di Azure AD il ruolo del database db_datareader usando la sintassi T-SQL seguente:Grant the Azure AD user the db_datareader database role by using the following T-SQL syntax:

    Use <Database Name> -- provide your database name
    ALTER ROLE db_datareader ADD MEMBER user_name
    GO
    

    L'esempio seguente mostra come concedere all'utente bob@aadsqlmi.net e al gruppo mygroup le autorizzazioni di db_datareader per il database MyMITestDB:The following example provides the user bob@aadsqlmi.net and the group mygroup with db_datareader permissions on the MyMITestDB database:

    USE MyMITestDB
    GO
    ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net]
    GO
    ALTER ROLE db_datareader ADD MEMBER [mygroup]
    GO
    
  4. Per verificare l'esistenza dell'utente di Azure AD creato nel database, eseguire il comando seguente:Check the Azure AD user that was created in the database exist by executing the following command:

    SELECT * FROM sys.database_principals
    GO
    
  5. Creare una nuova connessione all'istanza gestita con l'utente che è stato aggiunto al ruolo db_datareader.Create a new connection to the managed instance with the user that has been added to the db_datareader role.

  6. Espandere il database in Esplora oggetti per visualizzare la tabella.Expand the database in Object Explorer to see the table.

    ssms-test-table.png

  7. Aprire una nuova finestra di query ed eseguire l'istruzione SELECT seguente:Open a new query window and execute the following SELECT statement:

    SELECT *
    FROM TestTable
    

    I dati della tabella sono visibili?Are you able to see data from the table? Dovrebbe essere possibile visualizzare le colonne restituite.You should see the columns being returned.

    ssms-test-table-query.png

Rappresentazione delle entità di livello server di Azure AD (account di accesso)Impersonating Azure AD server-level principals (logins)

L'istanza gestita supporta la rappresentazione di entità di livello server (account di accesso) di Azure AD.Managed instance supports the impersonation of Azure AD server-level principals (logins).

Testare la rappresentazioneTest impersonation

  1. Accedere all'istanza gestita con un account sysadmin usando SQL Server Management Studio.Log into your managed instance using a sysadmin account using SQL Server Management Studio.

  2. In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.In Object Explorer, right-click the server and choose New Query.

  3. Nella finestra di query usare il comando seguente per creare una nuova stored procedure:In the query window, use the following command to create a new stored procedure:

    USE MyMITestDB
    GO  
    CREATE PROCEDURE dbo.usp_Demo  
    WITH EXECUTE AS 'bob@aadsqlmi.net'  
    AS  
    SELECT user_name();  
    GO
    
  4. Usare il comando seguente per verificare che l'utente rappresentato durante l'esecuzione della stored procedure sia bob@aadsqlmi.net.Use the following command to see that the user you're impersonating when executing the stored procedure is bob@aadsqlmi.net.

    Exec dbo.usp_Demo
    
  5. Per testare la rappresentazione, usare l'istruzione EXECUTE AS LOGIN:Test impersonation by using the EXECUTE AS LOGIN statement:

    EXECUTE AS LOGIN = 'bob@aadsqlmi.net'
    GO
    SELECT SUSER_SNAME()
    REVERT
    GO
    

Nota

Solo le entità di livello server SQL (account di accesso) che fanno parte del ruolo sysadmin possono eseguire le operazioni seguenti destinate a entità di sicurezza di Azure AD:Only the SQL server-level principals (logins) that are part of the sysadmin role can execute the following operations targeting Azure AD principals:

  • EXECUTE AS USEREXECUTE AS USER
  • EXECUTE AS LOGINEXECUTE AS LOGIN

Uso di query tra database nelle istanze gestiteUsing cross-database queries in managed instances

Le query tra database sono supportate per gli account Azure AD con entità server (account di accesso) di Azure AD.Cross-database queries are supported for Azure AD accounts with Azure AD server principals (logins). Per testare una query tra database con un gruppo di Azure AD, è necessario creare un altro database e un'altra tabella.To test a cross-database query with an Azure AD group, we need to create another database and table. È possibile non creare un altro database e un'altra tabella se esistono già.You can skip creating another database and table if one already exist.

  1. Accedere all'istanza gestita con un account sysadmin usando SQL Server Management Studio.Log into your managed instance using a sysadmin account using SQL Server Management Studio.

  2. In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.In Object Explorer, right-click the server and choose New Query.

  3. Nella finestra di query usare il comando seguente per creare un database denominato MyMITestDB2 e una tabella denominata TestTable2:In the query window, use the following command to create a database named MyMITestDB2 and table named TestTable2:

    CREATE DATABASE MyMITestDB2;
    GO
    USE MyMITestDB2
    GO
    CREATE TABLE TestTable2
    (
    EmpId varchar(10),
    FirstName varchar(255),
    LastName varchar(255),
    Status varchar(10)
    );
    
  4. In una nuova finestra di query eseguire il comando seguente per creare l'utente mygroup nel nuovo database MyMITestDB2 e concedere le autorizzazioni SELECT per tale database a mygroup:In a new query window, execute the following command to create the user mygroup in the new database MyMITestDB2, and grant SELECT permissions on that database to mygroup:

    USE MyMITestDB2
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    GRANT SELECT TO [mygroup]
    GO
    
  5. Accedere all'istanza gestita usando SQL Server Management Studio come membro del gruppo di Azure AD mygroup.Sign into the managed instance using SQL Server Management Studio as a member of the Azure AD group mygroup. Aprire una nuova finestra di query ed eseguire l'istruzione SELECT tra database:Open a new query window and execute the cross-database SELECT statement:

    USE MyMITestDB
    SELECT * FROM MyMITestDB2..TestTable2
    GO
    

    Dovrebbero essere visualizzati i risultati della tabella di TestTable2.You should see the table results from TestTable2.

Altri scenari supportati per le entità server di Azure AD (account di accesso)Additional scenarios supported for Azure AD server principals (logins)

  • Per le entità server (account di accesso) di Azure AD sono supportate la gestione dell'agente SQL e le esecuzioni di processi.SQL Agent management and job executions 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).
  • 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.
  • Connessione amministrativa dedicata per le entità server (account di accesso) di Azure AD che fanno parte del ruolo del server sysadmin.Dedicated administrator connection for Azure AD server principals (logins) that are members of the sysadmin server-role.
  • Le entità server (account di accesso) di Azure AD sono supportate con l'utilità sqlcmd e lo strumento SQL Server Management Studio.Azure AD server principals (logins) are supported with using the sqlcmd Utility and SQL Server Management Studio tool.
  • 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 le 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 Azure AD server principals (logins).

Passaggi successiviNext steps

Abilitare le funzionalità di sicurezzaEnable security features

Vedere l'articolo seguente sulle funzionalità di sicurezza delle istanze gestite per un elenco completo di soluzioni per proteggere il database.See the following managed instance capabilities security features article for a comprehensive list of ways to secure your database. Sono illustrate le funzionalità di sicurezza seguenti:The following security features are discussed:

Funzionalità dell'istanza gestitaManaged instance capabilities

Per una panoramica completa delle funzionalità delle istanze gestite, vedere:For a complete overview of a managed instance capabilities, see: