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.
Puoi creare e utilizzare server principal da Microsoft Entra ID (precedentemente Azure Active Directory) come login nel database virtuale master di un pool SQL dedicato Azure Synapse Analytics.
Note
Le entità di sicurezza server di Microsoft Entra sono attualmente in anteprima per Azure Synapse Analytics.
Ci sono diversi vantaggi nell'utilizzare le entità server Microsoft Entra con un pool SQL dedicato:
- Supporta i ruoli del server per la gestione dei permessi.
- Supporta più utenti di Microsoft Entra con ruoli speciali per Azure Synapse Analytics, come i ruoli
loginmanageredbmanager. - Parità funzionale tra gli account di accesso SQL e gli account di accesso Microsoft Entra.
- Aumentare il supporto al miglioramento funzionale, ad esempio utilizzando l'autenticazione solo Microsoft Entra. L'autenticazione solo Microsoft Entra permette di disabilitare l'autenticazione SQL, che include l'amministratore del server SQL, gli accessi SQL e gli utenti.
- Usare gli account di accesso dell'entità servizio di Microsoft Entra con ruoli speciali per automatizzare completamente la creazione e la manutenzione di utenti e database con le applicazioni Microsoft Entra.
Per ulteriori informazioni, vedi Microsoft Entra authentication for Azure Synapse Analytics.
Permissions
Per utilizzare o creare gli accessi Microsoft Entra nel database virtualemaster, sono necessari i seguenti permessi:
- Autorizzazioni di amministratore di Microsoft Entra o appartenenza al ruolo del server
loginmanager. Solo l'amministratore di Microsoft Entra può creare il primo login di Microsoft Entra. - Deve essere membro di Microsoft Entra ID all'interno della stessa directory utilizzata da Azure Synapse Analytics.
Per impostazione predefinita, agli account di accesso Microsoft Entra appena creati nel database master viene concessa l'autorizzazione VIEW ANY DATABASE.
Sintassi delle entità di sicurezza di Microsoft Entra
Usare la sintassi seguente per creare e gestire le entità di database e del server di Microsoft Entra.
Creare un account di accesso
Questa sintassi crea un account di accesso a livello di server basato su un'identità di Microsoft Entra. Solo l'amministratore di Microsoft Entra può eseguire questo comando nel database virtualemaster.
CREATE LOGIN login_name
{
FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid']
| WITH <option_list> [,..]
}
<option_list> ::=
PASSWORD = { 'password' }
[ , SID = sid ]
Il login_name specifica l'identità Microsoft Entra, ovvero un utente, un gruppo o un'applicazione di Microsoft Entra.
Per altre informazioni, vedere CREATE LOGIN (Transact-SQL).
Crea un utente dal login
La sintassi T-SQL seguente crea un'entità di sicurezza Microsoft Entra a livello di database associata a un login Microsoft Entra nel database virtuale master. Analogamente alla sintassi per la creazione di un utente Microsoft Entra contenuto nel database, l'unica differenza è che viene specificato FROM LOGIN [login_name] anziché FROM EXTERNAL PROVIDER.
Per creare un utente di Microsoft Entra da un account di accesso di Microsoft Entra, usare la sintassi seguente.
CREATE USER [user_name] FROM LOGIN [login_name]
È possibile usare la colonna SID di sys.database_principals per distinguere tra un utente del database indipendente di Microsoft Entra e un utente di Microsoft Entra creato da un account di accesso. Per un utente di un database contenuto, SID è una stringa binaria di lunghezza pari a 16. Per un utente con accesso tramite login, SID ha una lunghezza di 18 caratteri e il suffisso AADE.
Note
Aggiungere il AADE suffisso al SID è il modo in cui si identifica un utente Microsoft Entra come creato da un login. Tuttavia, questo significa anche che i SID per l'accesso e i suoi utenti non corrispondono tra sys.server_principals e sys.database_principals. Per ricollegare l'utente al relativo login, devi prima rimuovere il suffisso AADE.
Per comprendere la differenza concettuale tra gli utenti basati su un account di accesso e gli utenti del database indipendente, vedere Utenti del database indipendente.
Per altre informazioni su tutta la sintassi per creare l'utente, vedere CREATE USER (Transact-SQL).
Disabilita o abilita un login usando ALTER LOGIN
Usa la sintassi DDL ALTER LOGIN (Transact-SQL) per abilitare o disabilitare un login Microsoft Entra in un pool SQL dedicato Azure Synapse Analytics.
ALTER LOGIN [login_name] DISABLE
Quando disabiliti un login, l'entità server non riesce più a connettersi. Disabilitare un login impedisce anche a tutte le entità di sicurezza del database (utenti) create da quel login di connettersi ai rispettivi database.
Note
ALTER LOGIN login_name DISABLENon può influenzare gli utenti del database contenuto, perché non sono associati alle credenziali di accesso.ALTER LOGIN login_name DISABLEnon è supportata per i gruppi Microsoft Entra.Un singolo login disabilitato non può appartenere a un utente che fa parte di un gruppo di accesso che hai creato nel
masterdatabase (ad esempio, un gruppo di amministratori Microsoft Entra).Per far sì che le modifiche
DISABLEoENABLEabbiano effetto immediato, svuota la cache di autenticazione e la cacheTokenAndPermUserStoreutilizzando i seguenti comandi T-SQL:DBCC FLUSHAUTHCACHE DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Limitazioni e commenti
- L'amministratore del server SQL non può creare account di accesso o utenti di Microsoft Entra in alcun database.
- I pool SQL dedicati negli spazi di lavoro di Azure Synapse Analytics non usano server SQL logici.
- Un amministratore SQL o un utente SQL non può eseguire le seguenti operazioni di Microsoft Entra:
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDERCREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDEREXECUTE AS USER [bob@contoso.com]ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
- L'impersonificazione delle entità server Microsoft Entra (accessi) non è supportata per Azure Synapse Analytics:
- Clausola EXECUTE AS (Transact-SQL)
- EXECUTE AS (Transact-SQL)
- È supportata l'imitazione delle entità di sicurezza del database Microsoft Entra (utenti) in un database utente.
- Gli account di accesso Microsoft Entra non possono sovrapporsi all'amministratore di Microsoft Entra. L'amministratore di Microsoft Entra ha la precedenza su tutti gli account di accesso. Se un account Microsoft Entra ha già accesso al server come amministratore di Microsoft Entra, singolarmente o come parte di un gruppo, tutti gli account di accesso creati per questo account non avranno alcun effetto. Tuttavia, la creazione dell'account di accesso non è bloccata tramite T-SQL. Dopo che l'account si autentica sul server, il login ha i permessi effettivi di un amministratore Microsoft Entra, e non di un login appena creato.
- Non è supportato cambiare i permessi su uno specifico oggetto di login Microsoft Entra:
GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
- Quando modifichi i permessi per un login Microsoft Entra, di default le modifiche entrano in vigore solo la prossima volta che il login si connette al pool SQL dedicato. Le connessioni aperte esistenti con l'accesso non vengono influenzate. Per forzare l'applicazione immediata delle modifiche alle autorizzazioni, è possibile cancellare manualmente l'autenticazione e TokenAndPermUserStore, come descritto precedentemente in Disabilitare o abilitare un account di accesso usando ALTER LOGIN. Questo comportamento si applica anche quando si apportano modifiche all'appartenenza al ruolo del server con ALTER SERVER ROLE.
- In SQL Server Management Studio il comando di scripting per creare un utente non verifica se è già presente un account di accesso a Microsoft Entra con
masterlo stesso nome. Genera sempre il T-SQL per un utente Microsoft Entra di un database contenuto. - Può verificarsi un errore se si sta tentando di creare un account di accesso o un utente da un'entità servizio con un nome visualizzato non univoco. Per ulteriori informazioni su come mitigare questo errore, vedi Considerazioni sul nome.
- Gli utenti del database creati tramite login Microsoft Entra possono subire ritardi quando vengono concessi ruoli e permessi. Se incontri questo problema, usa i seguenti comandi:
- Eliminare l'utente dal database utente.
- Eseguire
DBCC FREESYSTEMCACHE('TokenAndPermUserStore')per cancellare le cache di sicurezza nel database. - Eseguire
DBCC FLUSHAUTHCACHEper cancellare la cache del contesto di autenticazione federata. - Crea l'utente basato sul login.
Limitazioni delle entità server dei gruppi Microsoft Entra
Le seguenti limitazioni si applicano agli accessi di gruppo Microsoft Entra in Azure Synapse Analytics:
- I ruoli server non sono supportati per i gruppi Microsoft Entra.
- Se il tuo amministratore SQL è un gruppo Microsoft Entra, gli utenti di quel gruppo incontrano alcune limitazioni quando si connettono. Ogni utente Microsoft Entra non è elencato individualmente nella
sys.server_principalstabella. Questa limitazione ha varie conseguenze, incluse le chiamate aSUSER_SIDche restituisconoNULL. - Gli accessi utente Microsoft Entra che fanno parte degli accessi di gruppo Microsoft Entra non vengono creati implicitamente. Questi utenti non hanno uno schema predefinito e non possono eseguire operazioni come
CREATE SCHEMAfinché non crei un login per l'utente Microsoft Entra o non assegni uno schema predefinito al gruppo. - Non puoi cambiare la proprietà di un database in un gruppo Microsoft Entra come proprietario del database.
ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group]ha esito negativo con messaggio di errore:Msg 33181, Level 16, State 1, Line 4 The new owner cannot be Azure Active Directory group.