Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:Istanza gestita di SQL di Azure SQL
Questo articolo illustra come usare le entità server (account di accesso) supportate da Microsoft Entra ID (in precedenza Azure Active Directory) per proteggere un’Istanza gestita di SQL di Azure.
In questa esercitazione apprenderai a:
- Creare un account di accesso di Microsoft Entra per un'istanza gestita di SQL.
- Concedere autorizzazioni agli account di accesso in un'istanza gestita di SQL.
- Creare utenti di Microsoft Entra dagli account di accesso.
- Assegnare autorizzazioni agli utenti e gestire la sicurezza del database.
- Usare la rappresentazione con gli utenti.
- Usare query tra database con gli utenti.
- Informazioni sulle funzionalità di sicurezza, ad esempio protezione dalle minacce, controllo, maschera dati e crittografia.
Nota
Microsoft Entra ID era noto in precedenza come Azure Active Directory (Azure AD).
Prerequisiti
Per completare questa esercitazione, verificare di avere i prerequisiti seguenti:
- SQL Server Management Studio (SSMS)
- Istanza gestita di SQL
- Seguire questo articolo : Avvio rapido: Creare un'istanza gestita di SQL
- È possibile accedere all'istanza gestita di SQL ed eseguire il provisioning di un amministratore di Microsoft Entra per l'istanza gestita di SQL. Per altre informazioni, vedere:
Limitare l'accesso
È possibile accedere alle istanze gestite di SQL tramite un indirizzo IP privato. Analogamente a quanto avviene con un ambiente SQL Server isolato, le applicazioni o gli utenti devono accedere alla rete dell'istanza gestita di SQL (rete virtuale) prima di poter stabilire una connessione. Per altre informazioni, vedere Connettere l'applicazione a Istanza gestita di SQL di Azure.
È anche possibile configurare un endpoint di servizio in un'istanza gestita di SQL, che consente connessioni pubbliche allo stesso modo del database SQL di Azure. Per altre informazioni, vedere Configurare l'endpoint pubblico nell'istanza gestita di SQL di Azure.
Creare un account di accesso di Microsoft Entra con SSMS
L'amministratore SQL può creare il primo account di accesso di Microsoft Entra o l'amministratore di Microsoft Entra creato durante il provisioning. Per altre informazioni, vedere Effettuare il provisioning di un amministratore di Microsoft Entra per l'istanza gestita di SQL.
Per esempi relativi alla connessione all'istanza gestita di SQL, vedere gli articoli seguenti:
- Avvio rapido: Configurare una VM di Azure per la connessione a un'istanza gestita di SQL
- Avvio rapido: Configurare una connessione da punto a sito a Istanza gestita di SQL da un computer locale
Connettersi all'istanza gestita di SQL con un account di accesso SQL sysadmin o l'amministratore di Microsoft Entra usando SQL Server Management Studio (SSMS).
In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.
Nella finestra di query usare la sintassi seguente per creare un account di accesso per un account Microsoft Entra:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GOQuesto esempio mostra come creare un account di accesso per l'account
nativeuser@aadsqlmi.onmicrosoft.com.USE master GO CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER GOSulla barra degli strumenti selezionare Esegui per creare l'account di accesso.
Controllare l'account di accesso appena aggiunto eseguendo il comando T-SQL seguente:
SELECT * FROM sys.server_principals; GO
Per altre informazioni, vedere CREATE LOGIN.
Concedere le autorizzazioni per la creazione degli account di accesso
Gli account di accesso esistenti devono avere autorizzazioni appropriate o far parte dei ruoli del server appropriati per creare altri account di accesso di Microsoft Entra.
Account di accesso con autenticazione SQL
Se l'account di accesso è un'entità server basata sull'autenticazione SQL, è necessario assegnare il ruolo sysadmin per creare account di accesso per gli account Microsoft Entra.
Autenticazione degli account di accesso di Microsoft Entra
- Se l'account di accesso è un'entità server Microsoft Entra, è necessario assegnare il ruolo del server sysadmin o securityadmin per creare account di accesso per altri utenti, gruppi e applicazioni Di Microsoft Entra.
- Come minimo, è necessario concedere l'autorizzazione
ALTER ANY LOGINper creare altri account di accesso di Microsoft Entra. - Per impostazione predefinita, le autorizzazioni standard concesse agli account di accesso Microsoft Entra appena creati in
mastersonoCONNECT SQLeVIEW ANY DATABASE. - Il ruolo del server sysadmin può essere concesso a molti account di accesso Microsoft Entra all'interno di un'istanza gestita di SQL.
Per aggiungere l'account di accesso al ruolo del server sysadmin :
Accedere di nuovo all'istanza gestita di SQL oppure usare la connessione esistente con l'amministratore di Microsoft Entra o l'entità SQL che è un amministratore di sistema.
In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.
Concedere all'account di accesso Microsoft Entra il ruolo del server sysadmin usando la sintassi T-SQL seguente:
ALTER SERVER ROLE sysadmin ADD MEMBER login_name GONell'esempio seguente viene concesso il ruolo del server sysadmin all'account di accesso
nativeuser@aadsqlmi.onmicrosoft.com:ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
Creare account di accesso Aggiuntivi di Microsoft Entra con SSMS
Dopo aver creato e concesso privilegi sysadmin , l'account di accesso di Microsoft Entra può creare account di accesso aggiuntivi usando la FROM EXTERNAL PROVIDER clausola con CREATE LOGIN.
Connettersi all'istanza gestita di SQL con l'account di accesso Di Microsoft Entra selezionando Connetti al server in SQL Server Management Studio (SSMS).
- Immettere il nome host dell'istanza gestita di SQL in Nome del server.
- Per Autenticazione selezionare Microsoft Entra MFA per visualizzare una finestra di accesso con autenticazione a più fattori. Accedi. Per altre informazioni, vedere Autenticazione universale (supporto di SSMS per autenticazione a più fattori).
In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.
Nella finestra di query usare la sintassi seguente per creare un account di accesso per un altro account Microsoft Entra:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GOIn questo esempio viene creato un account di accesso per l'utente
bob@aadsqlmi.netMicrosoft Entra , il cui dominioaadsqlmi.netè federato con il dominio Microsoft Entraaadsqlmi.onmicrosoft.com.Eseguire il comando T-SQL seguente. Gli account Azure AD federati sono le sostituzioni dell'istanza gestita di SQL per account di accesso e utenti di Windows locali.
USE master GO CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER GOCreare un database nell'istanza gestita di SQL usando la sintassi CREATE DATABASE . Questo database verrà usato per testare gli account di accesso nella sezione successiva.
In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.
Nella finestra di query usare la sintassi seguente per creare un database denominato MyMITestDB.
CREATE DATABASE MyMITestDB; GO
Creare un account di accesso dell'istanza gestita di SQL per un gruppo in Microsoft Entra ID. Il gruppo deve essere già presente in Microsoft Entra ID prima di poter aggiungere l'account di accesso all'istanza gestita di SQL. Vedere Creare un gruppo di base e aggiungere membri usando Microsoft Entra ID. Creare un gruppo mygroup e aggiungere membri a questo gruppo.
Aprire una nuova finestra di query in SQL Server Management Studio.
Questo esempio presuppone l'esistenza di un gruppo denominato mygroup in Microsoft Entra ID. Eseguire il comando seguente:
USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GOCome test, accedere all'istanza gestita di SQL con l'account di accesso o il gruppo appena creato. Aprire una nuova connessione all'istanza gestita di SQL e usare il nuovo account di accesso durante l'autenticazione.
In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query per la nuova connessione.
Per verificare le autorizzazioni del server per l'account di accesso di Microsoft Entra appena creato, eseguire il comando seguente:
SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
Il supporto di Azure SQL delle entità di sicurezza di Microsoft Entra come utenti e account di accesso si estende a Microsoft Entra per ID esterno utenti guest interni ed esterni. Gli utenti guest, sia singolarmente che come parte di un gruppo, possono essere usati come qualsiasi altro utente di Microsoft Entra in Azure SQL. Se si vuole che gli utenti guest possano creare altri account di accesso o di database del server Microsoft Entra, devono disporre delle autorizzazioni per leggere altre identità nella directory Microsoft Entra. Questa autorizzazione è configurata a livello di directory. Per altre informazioni, vedere autorizzazioni di accesso guest in Microsoft Entra ID.
Creare un utente di Microsoft Entra dall'account di accesso di Microsoft Entra
Il funzionamento delle autorizzazioni per i singoli database nell'istanza gestita di SQL è analogo a quello delle autorizzazioni per i database in SQL Server. È possibile creare un utente da un account di accesso esistente in un database a cui sono state concesse le autorizzazioni per tale database o aggiunte a un ruolo del database.
Dopo aver creato un database denominato MyMITestDB e un account di accesso con autorizzazioni predefinite, il passaggio successivo consiste nel creare un utente da tale account di accesso. Al momento, l'account di accesso può connettersi all'istanza gestita di SQL e visualizzare tutti i database, ma non può interagire con i database. Se si accede con l'account Microsoft Entra con le autorizzazioni predefinite e si tenta di espandere il database appena creato, verrà visualizzato l'errore seguente:
Per altre informazioni sulla concessione delle autorizzazioni per i database, vedere Introduzione alle autorizzazioni del motore di database.
Creare un utente di Microsoft Entra e creare una tabella di esempio
Nota
Esistono alcune limitazioni quando un utente accede come parte di un gruppo Microsoft Entra.
Ad esempio, una chiamata a SUSER_SID restituisce NULL, poiché l'utente Microsoft Entra specificato non fa parte della tabella sys.server_principals .
Pertanto, l'accesso a determinate stored procedure o a un elenco di autorizzazioni concesse potrebbe essere limitato in questo caso.
Accedere all'istanza gestita di SQL con un account sysadmin in SQL Server Management Studio.
In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.
Nella finestra di query usare la sintassi seguente per creare un utente di da un account di accesso di Microsoft Entra:
USE <Database Name> -- provide your database name GO CREATE USER user_name FROM LOGIN login_name GOL'esempio seguente mostra come creare un utente
bob@aadsqlmi.netdall'account di accessobob@aadsqlmi.net:USE MyMITestDB GO CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net] GOÈ supportato anche per creare un utente di Microsoft Entra da un account di accesso di Microsoft Entra che è un gruppo.
L'esempio seguente crea un account di accesso per il gruppo mygroup Microsoft Entra esistente nel tenant di Microsoft Entra:
USE MyMITestDB GO CREATE USER [mygroup] FROM LOGIN [mygroup] GOTutti gli utenti che appartengono a mygroup possono accedere al database MyMITestDB.
Importante
Quando si crea un utente da un account di accesso di Microsoft Entra, specificare il user_name come lo stesso login_name da
LOGIN.Per altre informazioni, vedere CREATE USER.
In una nuova finestra di query creare una tabella di test usando il comando T-SQL seguente:
USE MyMITestDB GO CREATE TABLE TestTable ( AccountNum varchar(10), City varchar(255), Name varchar(255), State varchar(2) );Creare una connessione in SQL Server Management Studio con l'utente che è stato creato. Si noterà che non è possibile visualizzare la tabella TestTable creata in precedenza da sysadmin . È necessario fornire all'utente le autorizzazioni per leggere i dati dal database.
È possibile verificare l'autorizzazione corrente disponibile per l'utente eseguendo il comando seguente:
SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE') GO
Aggiungere utenti a ruoli a livello di database
Per consentire all'utente di visualizzare i dati nel database, è possibile concedergli i ruoli a livello di database.
Accedere all'istanza gestita di SQL con un account sysadmin usando SQL Server Management Studio.
In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.
Concedere all'utente Microsoft Entra il ruolo del database db_datareader usando la sintassi T-SQL seguente:
Use <Database Name> -- provide your database name ALTER ROLE db_datareader ADD MEMBER user_name GOL'esempio seguente fornisce all'utente
bob@aadsqlmi.nete al gruppo mygroup le autorizzazioni di db_datareader per il database MyMITestDB :USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GOVerificare che l'utente di Microsoft Entra creato nel database esista eseguendo il comando seguente:
SELECT * FROM sys.database_principals GOCreare una nuova connessione all'istanza gestita di SQL con l'utente aggiunto al ruolo db_datareader .
Espandere il database in Esplora oggetti per visualizzare la tabella.
Aprire una nuova finestra di query ed eseguire l'istruzione seguente
SELECT:SELECT * FROM TestTableI dati della tabella sono visibili? Verranno visualizzate le colonne restituite come illustrato nello screenshot seguente:
Rappresentare gli account di accesso di Microsoft Entra
Istanza gestita di SQL supporta la rappresentazione degli account di accesso di Microsoft Entra.
Testare la rappresentazione
Accedere all'istanza gestita di SQL con un account sysadmin usando SQL Server Management Studio.
In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.
Nella finestra di query usare il comando seguente per creare una nuova stored procedure:
USE MyMITestDB GO CREATE PROCEDURE dbo.usp_Demo WITH EXECUTE AS 'bob@aadsqlmi.net' AS SELECT user_name(); GOUsare il comando seguente per verificare che l'utente rappresentato durante volta l'esecuzione della stored procedure sia
bob@aadsqlmi.net.Exec dbo.usp_DemoTestare la rappresentazione usando l'istruzione
EXECUTE AS LOGIN:EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Nota
Solo gli account di accesso a livello di SQL Server che fanno parte del ruolo sysadmin possono eseguire le operazioni seguenti destinate alle entità di sicurezza Microsoft Entra:
EXECUTE AS USEREXECUTE AS LOGIN
Usare le query tra database
Le query tra database sono supportate per gli account Microsoft Entra con account di Accesso Microsoft Entra. Per testare una query tra database con un gruppo di Microsoft Entra, è necessario creare un altro database e un'altra tabella. È possibile non creare un altro database e un'altra tabella se esistono già.
Accedere all'istanza gestita di SQL con un account sysadmin usando SQL Server Management Studio.
In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.
Nella finestra di query usare il comando seguente per creare un database denominato MyMITestDB2 e una tabella denominata TestTable2:
CREATE DATABASE MyMITestDB2; GO USE MyMITestDB2 GO CREATE TABLE TestTable2 ( EmpId varchar(10), FirstName varchar(255), LastName varchar(255), Status varchar(10) );In una nuova finestra di query eseguire il comando seguente per creare l'utente mygroup nel nuovo database MyMITestDB2 e concedere
SELECTle autorizzazioni per tale database a mygroup:USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GOAccedere all'istanza gestita di SQL usando SQL Server Management Studio come membro del gruppo Mygroup Di Microsoft Entra. Aprire una nuova finestra di query ed eseguire l'istruzione tra database
SELECT:USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GODovrebbero essere visualizzati i risultati della tabella di TestTable2.
Altri scenari supportati
- Per gli account di accesso di Microsoft Entra sono supportate l'esecuzione di processi e le operazioni di gestione dell'agente SQL.
- Gli account di accesso microsoft Entra possono eseguire operazioni di backup e ripristino del database.
- Controllo di tutte le istruzioni relative agli eventi di autenticazione e agli account di accesso di Microsoft Entra.
- Connessione amministrativa dedicata per gli account di accesso microsoft Entra che sono membri del ruolo del server sysadmin .
- Gli account di accesso di Microsoft Entra sono supportati con l'utilità sqlcmd e lo strumento SQL Server Management Studio.
- Sono supportati i trigger di accesso per gli eventi di accesso provenienti dagli account di accesso di Microsoft Entra.
- Usando gli account di accesso di Microsoft Entra è possibile configurare Service Broker e la posta elettronica del database.
Contenuti correlati
- Funzionalità di sicurezza di Istanza gestita di SQL
- Inizia con l'audit di Azure SQL Managed Instance
- Always Encrypted
- Configurare Advanced Threat Protection in Istanza gestita di SQL di Azure
- Maschera dati dinamica
- Sicurezza a livello di riga
- Transparent Data Encryption (TDE)
- Che cos'è Istanza gestita di SQL di Azure?