Tutorial: Garantire la sicurezza degli account di accesso di Microsoft Entra - Istanza gestita di SQL di Azure
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
- Concedere le autorizzazioni agli account di accesso in un'istanza gestita
- Creare utenti in Microsoft Entra dagli account di accesso
- Assegnare autorizzazioni agli utenti e gestire la sicurezza dei database
- Usare la rappresentazione con utenti
- Usare query tra database con utenti
- Informazioni sulle funzionalità di sicurezza come la protezione da minacce, il controllo, il data masking e la 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
- Seguire questo articolo: Avvio rapido: Creare un'istanza gestita
- Possibilità di accedere all'istanza gestita e di effettuare il provisioning di un amministratore Microsoft Entra per l'istanza gestita. Per altre informazioni, vedere:
Limitare l'accesso
Le istanze gestite sono accessibili 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 nell'istanza gestita un endpoint servizio che consente le connessioni pubbliche, in modo analogo al 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
Il primo account di accesso di Microsoft Entra può essere creato dall'amministratore SQL o dall'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
Connessione all'istanza gestita con uno dei due Account di accesso SQL
sysadmin
o 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 GO
Questo 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 GO
Sulla barra degli strumenti selezionare Esegui per creare l'account di accesso.
Verificare 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, deve essere assegnato 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, deve essere assegnato il ruolo server
sysadmin
osecurityadmin
per creare account di accesso per altri utenti, gruppi e applicazioni Di Microsoft Entra. - Come minimo, per creare altri account di accesso di Microsoft Entra è necessario concedere l’autorizzazione ALTER ANY LOGIN.
- Per impostazione predefinita, le autorizzazioni standard concesse agli account di accesso Microsoft Entra appena creati in
master
sono: CONNECT SQL e VIEW ANY DATABASE. - Il ruolo del server
sysadmin
può essere concesso a più account di accesso Microsoft Entra all'interno di un'istanza gestita.
Per aggiungere l'account di accesso al ruolo del server sysadmin
:
Accedere di nuovo all'istanza gestita oppure usare la connessione esistente con l'amministratore di Microsoft Entra o un'entità di sicurezza SQL, ovvero
sysadmin
.In Esplora oggetti fare clic con il pulsante destro del mouse sul server e scegliere Nuova query.
Concedere all'account di accesso di Microsoft Entra il ruolo del server
sysadmin
usando la sintassi T-SQL seguente: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.comALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
Creare account di accesso Aggiuntivi di Microsoft Entra con SSMS
Dopo aver creato l'account di accesso di Microsoft Entra e aver concesso i privilegi di sysadmin
, tale account può creare altri account di accesso usando la clausola FROM EXTERNAL PROVIDER con CREATE LOGIN.
Connessione all'istanza gestita con l'account di accesso di Microsoft Entra selezionando Connessione a Server in SQL Server Management Studio (SSMS).
- Immettere il nome host dell'istanza gestita di SQL in Nome del server.
- Per Autenticazione selezionare Active Directory - Universale con supporto 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 GO
Questo esempio mostra come creare un account di accesso per l'utente bob@aadsqlmi.net di Microsoft Entra, il cui dominio aadsqlmi.net è federato con il dominio aadsqlmi.onmicrosoft.com di Microsoft Entra.
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 GO
Creare un database nell'istanza gestita 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 tale 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 GO
A scopo di test, accedere all'istanza gestita con l'account di accesso o il gruppo appena creato. Aprire una nuova connessione all'istanza gestita e usare il nuovo account di accesso per 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 e concedere le autorizzazioni per il database oppure aggiungerlo a un ruolo del database.
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. Al momento, l'account di accesso può connettersi all'istanza gestita e visualizzare tutti i database, ma non può interagire con essi. Se si accede con l'account Microsoft Entra con le autorizzazioni predefinite e si prova a 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 può essere limitato in questo caso.
Accedere all'istanza gestita 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 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 GO
L'esempio seguente mostra come creare un utente bob@aadsqlmi.net dall'account di accesso bob@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.
Nell'esempio seguente viene creato 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] GO
Tutti gli utenti che appartengono a mygroup possono accedere al database MyMITestDB.
Importante
Quando si crea un utente USER da un account di accesso di Microsoft Entra, specificare per user_name lo stesso valore di login_name indicato in 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 che è stato creato da
sysadmin
in precedenza. È 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 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 di 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 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:USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GO
Per verificare l'esistenza dell'utente di Microsoft Entra creato nel database, eseguire questo comando:
SELECT * FROM sys.database_principals GO
Creare una nuova connessione all'istanza gestita con l'utente che è stato 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 SELECT seguente:
SELECT * FROM TestTable
I dati della tabella sono visibili? Dovrebbe essere possibile visualizzare le colonne restituite.
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 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(); GO
Usare il comando seguente per verificare che l'utente rappresentato durante volta l'esecuzione della stored procedure sia bob@aadsqlmi.net.
Exec dbo.usp_Demo
Per testare la rappresentazione, usare l'istruzione EXECUTE AS LOGIN:
EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Nota
Solo gli account di accesso di livello SQL Server inclusi nel ruolo sysadmin
possono eseguire le operazioni seguenti destinate a entità di Microsoft Entra:
- EXECUTE AS USER
- EXECUTE 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 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 le autorizzazioni SELECT per tale database a mygroup:
USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GO
Accedere all'istanza gestita usando SQL Server Management Studio come membro del gruppo di Microsoft Entra mygroup. Aprire una nuova finestra di query ed eseguire l'istruzione SELECT tra database:
USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GO
Dovrebbero 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.
- Le operazioni di backup e ripristino del database possono essere eseguite dagli account di accesso di Microsoft Entra.
- 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 di Microsoft Entra che fanno parte 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.
Passaggi successivi
Abilitare le funzionalità di sicurezza
Vedere l'articolo sulle funzionalità di sicurezza delle istanze gestite di SQL per un elenco completo di soluzioni per proteggere il database. Sono illustrate le funzionalità di sicurezza seguenti:
- Controllo delle istanze gestite di SQL
- Always Encrypted
- Introduzione al rilevamento delle minacce
- Maschera dati dinamica
- Sicurezza a livello di riga
- Transparent Data Encryption (TDE)
Funzionalità delle istanze gestite di SQL
Per una panoramica completa delle funzionalità delle istanze gestite di SQL, vedere: