Autorizzare l'accesso al database a database SQL, Istanza gestita di SQL e Azure Synapse Analytics
Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics
Questo articolo contiene informazioni relative agli argomenti seguenti:
- Opzioni per la configurazione del database SQL di Azure, dell’Istanza gestita di SQL di Azure e di Azure Synapse Analytics per consentire agli utenti di eseguire attività amministrative e di accedere ai dati archiviati in questi database.
- Configurazione dell'accesso e dell'autorizzazione dopo la creazione iniziale di un nuovo server.
- Come aggiungere account di accesso nel database
master
e quindi concedere a questi account le autorizzazioni amministrative. - Come aggiungere account utente nei database utente, associati ad account di accesso o come account utente indipendenti.
- Configurare gli account utente con le autorizzazioni nei database utente usando i ruoli del database e le autorizzazioni esplicite.
Importante
I database in database SQL di Azure, Istanza gestita di SQL di Azure e Azure Synapse vengono definiti collettivamente nel resto di questo articolo come database, e per server si intende il server logico che gestisce i database per il database SQL di Azure e Azure Synapse.
Nota
Microsoft Entra ID era precedentemente conosciuto come Azure Active Directory (Azure AD).
Autenticazione e autorizzazione
L'autenticazione è il processo atto a dimostrare che l'utente sia effettivamente chi dichiara di essere. Un utente si connette a un database usando un account utente. Quando un utente tenta di connettersi a un database, specifica un account utente e le informazioni di autenticazione. L'utente viene autenticato usando uno dei due metodi di autenticazione seguenti:
-
Con questo metodo di autenticazione, l'utente invia un nome di account utente e la password associata per stabilire una connessione. Questa password viene archiviata nel database
master
per gli account utente collegati a un accesso o archiviati nel database contenente gli account utente non collegati a un accesso.Nota
Il database SQL di Azure applica solo la complessità delle password per i criteri password. Per i criteri password in Istanza gestita di SQL di Azure, vedere Domande frequenti (FAQ) su Istanza gestita di SQL di Azure.
Autenticazione Microsoft Entra
Con questo metodo di autenticazione, l'utente invia un nome di account utente e richiede che il servizio usi le informazioni sulle credenziali archiviate in Microsoft Entra ID (in precedenza Azure Active Directory).
Accessi e utenti: un account utente in un database può essere associato a un accesso archiviato nel database master
oppure può essere un nome utente archiviato in un singolo database.
- Un accesso è un account singolo nel database
master
, a cui è possibile collegare un account utente in uno o più database. Con un account di accesso, le informazioni sulle credenziali per l'account utente vengono archiviate con l'account di accesso. - Un account utente è un singolo account in un qualsiasi database, che può essere collegato facoltativamente a un accesso. Con un account utente non collegato a un account di accesso, le informazioni sulle credenziali vengono archiviate con l'account utente.
L'autorizzazione per accedere ai dati ed eseguire varie azioni viene gestita usando ruoli di database e autorizzazioni esplicite. L'autorizzazione fa riferimento alle autorizzazioni assegnate a un utente e determina le operazioni che l'utente è autorizzato a eseguire. L'autorizzazione è controllata dalle appartenenze ai ruoli del database e dalle autorizzazioni a livello di oggetto dell'account utente. È consigliabile concedere agli utenti i privilegi minimi necessari.
Account di accesso e account utente esistenti dopo la creazione di un nuovo database
Quando si distribuisce Azure SQL per la prima volta, è possibile specificare un nome di accesso e una password per un tipo speciale di account di accesso amministrativo, l'amministratore del Server. Durante la distribuzione viene eseguita la configurazione seguente di account di accesso e utenti nei database master e utente:
- Viene creato un account di accesso SQL con privilegi amministrativi usando il nome dell'account di accesso specificato. Un account di accesso è un singolo account per l'accesso a database SQL, Istanza gestita di SQL e Azure Synapse.
- A questo account di accesso vengono concesse le autorizzazioni amministrative complete per tutti i database come entità di livello server. L'account di accesso ha tutte le autorizzazioni disponibili e non può essere limitato. In un'istanza gestita di SQL questo account di accesso viene aggiunto al ruolo predefinito del server sysadmin (questo ruolo non esiste nel database SQL di Azure).
- Quando questo account accede a un database, viene confrontato con l'account per utente speciale
dbo
(account utente, presente in ogni database utente). L'utente dbo dispone di tutte le autorizzazioni di database nel database ed è membro del ruolo predefinito del databasedb_owner
. Ulteriori ruoli predefiniti del database sono descritti più avanti in questo articolo.
Per identificare l'account amministratore del Server, aprire il portale di Azure e passare alla scheda Proprietà del server logico o dell'istanza gestita.
Importante
Il nome dell'account amministratore del Server non può essere modificato dopo la creazione. Per reimpostare la password per l'amministratore del server logico, aprire il portale di Azure, selezionare SQL Server, selezionare il server dall'elenco e quindi fare clic su Reimposta password. Per reimpostare la password per l’Istanza gestita di SQL, andare al portale di Azure, selezionare l'istanza e selezionare Reimpostare password. È anche possibile usare PowerShell o l'interfaccia della riga di comando di Azure.
Creare ulteriori account di accesso e utenti con autorizzazioni amministrative
A questo punto, il server o l’istanza gestita vengono configurati per l'accesso solo usando un unico account di accesso SQL e un account utente. Per creare account di accesso aggiuntivi con autorizzazioni amministrative complete o parziali sono disponibili le opzioni seguenti, a seconda della modalità di distribuzione:
Creare un account amministratore di Microsoft Entra con autorizzazioni amministrative complete
Abilitare l'autenticazione di Microsoft Entra e aggiungere un amministratore di Microsoft Entra. Un account Microsoft Entra può essere configurato come amministratore della distribuzione di Azure SQL con autorizzazioni amministrative complete. Questo account può essere un account utente singolo o di un gruppo di sicurezza. Un amministratore di Microsoft Entra deve essere configurato se si vogliono usare gli account Microsoft Entra per connettersi a database SQL, Istanza gestita di SQL o Azure Synapse. Per informazioni dettagliate sull'abilitazione dell'autenticazione a Microsoft Entra per tutti i tipi di distribuzione Azure SQL, vedere gli articoli seguenti:
In un’Istanza gestita di SQL, creare account di accesso SQL con autorizzazioni amministrative complete
- Creare un accesso SQL aggiuntivo nel database
master
. - Aggiungere l'account di accesso al ruolo predefinito del server sysadmin utilizzando l'istruzione ALTER SERVER ROLE. Questo account di accesso avrà autorizzazioni amministrative complete.
- In alternativa, creare un account di accesso Microsoft Entra usando la sintassi CREATE LOGIN.
Nota
I ruoli
dbmanager
eloginmanager
non riguardano le distribuzioni di istanze gestite di SQL Azure.- Creare un accesso SQL aggiuntivo nel database
Nel database SQL creare gli accessi SQL con autorizzazioni amministrative limitate
- Creare un accesso SQL aggiuntivo nel database
master
. - Aggiungere l'account di accesso ai ruoli di livello del server
##MS_DatabaseManager##
,##MS_LoginManager##
e##MS_DatabaseConnector##
usando l'istruzione ALTER SERVER ROLE.
I membri di questi ruoli
master
speciali del database per il database SQL di Azure dispongono dell'autorità per creare e gestire i database o gli account di accesso. Nei database creati da un utente membro del ruolodbmanager
, il membro viene mappato al ruolo predefinito del databasedb_owner
e può accedere a tale database e gestirlo usando l'account utentedbo
. Questi ruoli non dispongono di autorizzazioni esplicite al di fuori delmaster
database.Importante
Non è possibile creare un accesso SQL aggiuntivo con autorizzazioni amministrative complete nel database SQL di Azure. Solo l'account amministratore del server o l'account amministratore di Microsoft Entra (che può essere un gruppo Microsoft Entra) può aggiungere o rimuovere altri account di accesso da o verso i ruoli del server. Ciò è specifico per il database SQL di Azure.
- Creare un accesso SQL aggiuntivo nel database
Nel pool SQL dedicato di Azure Synapse, creare gli accessi SQL con autorizzazioni amministrative limitate
- Creare un accesso SQL aggiuntivo nel database
master
. - Creare un account utente nel database
master
associato a questo nuovo accesso. - Aggiungere l'account utente a
dbmanager
, al ruolologinmanager
, o a entrambi nelmaster
database usando l'istruzione sp_addrolemember.
- Creare un accesso SQL aggiuntivo nel database
Nel pool SQL serverless di Azure Synapse, creare gli accessi SQL con autorizzazioni amministrative limitate
- Creare un accesso SQL aggiuntivo nel database
master
. - Aggiungere l'account di accesso SQL al ruolo predefinito del server sysadmin usando l'istruzione ALTER SERVER ROLE.
- In alternativa, creare un account di accesso Microsoft Entra utilizzando la sintassi CREATE LOGIN.
- Creare un accesso SQL aggiuntivo nel database
Creare account per utenti non amministratori
È possibile creare account per utenti non amministrativi usando uno dei due metodi seguenti:
Creare un account di accesso
Creare un account di accesso SQL nel database
master
. Creare quindi un account utente in ogni database a cui l'utente deve accedere e associare l'account utente a tale account. Questo approccio è preferibile quando l'utente deve accedere a più database e si desidera che le password vengano mantenute sincronizzate. Questo approccio, tuttavia, presenta complessità quando viene usato con la replica geografica perché è necessario creare l'account di accesso sia nel server primario che nel server secondario. Per altre informazioni, vedere Configurare e gestire la sicurezza dei database SQL di Azure per il ripristino geografico o il failover.Crea un account utente
Creare un account utente nel database a cui un utente deve accedere (detto anche utente indipendente).
- Con il database SQL, è sempre possibile creare questo tipo di account utente.
- Con l’Istanza gestita di SQL che supporta le entità server di Microsoft Entra, è possibile creare account utente per l'autenticazione all’Istanza gestita di SQL senza richiedere che gli utenti del database debbano essere creati come un utente di database indipendente.
Con questo approccio, le informazioni di autenticazione dell'utente vengono archiviate in ogni database e replicate automaticamente nei database con replica geografica. Tuttavia, se lo stesso account è presente in più database e si usa l'autenticazione SQL, è necessario tenere sincronizzate manualmente le password. Inoltre, se un utente dispone di un account in database diversi con password diverse, la memorizzazione di tali password può costituire un problema.
Importante
Per creare utenti indipendenti mappati alle identità di Microsoft Entra, è necessario eseguire l'accesso usando un account Microsoft Entra nel database presente nel database SQL di Azure. In un'Istanza gestita di SQL, un account di accesso SQL con autorizzazioni sysadmin
può creare anche un account di accesso o un utente Microsoft Entra.
Per esempi che illustrano come creare account di accesso e utenti, vedere:
- Creare l'account di accesso per il database SQL di Azure
- Creare l'account di accesso per l'Istanza gestita SQL di Azure
- Creare l'account di accesso per Azure Synapse
- Creare un utente
- Creazione di utenti indipendenti Microsoft Entra
Suggerimento
Per un tutorial sulla sicurezza che include la creazione di utenti nel database SQL di Azure, vedere Tutorial: Proteggere il database SQL di Azure.
Utilizzo di ruoli di database fissi e personalizzati
Dopo aver creato un account utente in un database, basato su un account di accesso o come utente indipendente, è possibile autorizzare l'utente a eseguire varie azioni e ad accedere ai dati in un database specifico. È possibile usare i metodi seguenti per autorizzare l'accesso:
Ruoli predefiniti del database
Aggiungere l'account utente a un ruolo predefinito del database. Sono disponibili 9 ruoli predefiniti del database, ognuno con un set di autorizzazioni definito. I ruoli del database predefiniti più comuni sono i seguenti: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter e db_denydatareader. Per concedere autorizzazioni complete a un numero limitato di utenti viene usato comunemente db_owner. Gli altri ruoli predefiniti del database sono utili per ottenere rapidamente un database semplice nello sviluppo, ma non sono consigliabili per la maggior parte dei database di produzione. Il ruolo predefinito del database db_datareader, ad esempio, concede l'accesso in lettura a tutte le tabelle del database, che è più di quanto strettamente necessario.
Per aggiungere un utente a un ruolo predefinito del database:
- Nel database SQL di Azure o nel pool SQL serverless di Azure Synapse usare l'istruzione ALTER ROLE. Per gli esempi, vedere Esempi ALTER ROLE
- Nel pool SQL dedicato di Azure Synapse, usare l'istruzione sp_addrolemember. Per gli esempi, vedere sp_addrolemember esempi.
Ruolo personalizzato del database
Creare una regola di database personalizzata usando l'istruzione CREATE ROLE. Un ruolo personalizzato permette di creare ruoli del database definiti dall'utente e concedere con attenzione a ogni ruolo le autorizzazioni minime necessarie per le esigenze aziendali. È quindi possibile aggiungere utenti al ruolo personalizzato. Quando un utente è membro di più ruoli, vengono aggregate le autorizzazioni di tutti.
Concedere direttamente le autorizzazioni
Concedere all'account utente le autorizzazioni direttamente. Nel database SQL possono essere concesse o negate singolarmente oltre 100 autorizzazioni. Molte di queste autorizzazioni sono annidate. L'autorizzazione
UPDATE
per uno schema, ad esempio, include l'autorizzazioneUPDATE
per ogni tabella all'interno di tale schema. Come nella maggior parte dei sistemi di autorizzazioni, la negazione di un'autorizzazione determina l'override di una concessione. A causa dell'annidamento e del numero delle autorizzazioni, progettare un sistema di autorizzazioni appropriato per proteggere correttamente il database può richiedere un attento studio. Per iniziare, vedere l'elenco di autorizzazioni in Autorizzazioni (Motore di database) e la grafica in formato di poster relativa alle autorizzazioni.
Utilizzo di gruppi
In una gestione efficiente degli accessi vengono usate autorizzazioni assegnate a gruppi di sicurezza di Active Directory e a ruoli predefiniti o personalizzati anziché a singoli utenti.
Quando si usa l'autenticazione a Microsoft Entra, inserire gli utenti di Microsoft Entra in un gruppo di sicurezza Microsoft Entra. Creare un utente di database indipendente per il gruppo. Inserire uno o più utenti di database come membro in ruoli del database personalizzati o incorporati con le autorizzazioni specifiche appropriate per il gruppo di utenti.
Quando si usa l'autenticazione SQL, creare utenti di database indipendenti nel database. Inserire uno o più utenti di database in un ruolo del database personalizzato con autorizzazioni specifiche appropriate per il gruppo di utenti.
Nota
È anche possibile usare i gruppi per gli utenti di database non indipendenti.
È consigliabile acquisire familiarità con le funzionalità seguenti, utili per limitare o elevare le autorizzazioni:
- È possibile usare la rappresentazione e la firma del modulo per elevare temporaneamente le autorizzazioni in modo sicuro.
- La Sicurezza a livello di riga può essere utilizzata per limitare le righe a cui un utente può accedere.
- Mascheramento dei dati per limitare l'esposizione dei dati sensibili
- Stored procedure per limitare le operazioni che possono essere eseguite nel database.