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 di database SQL di Azure, Istanza gestita di SQL di Azure e Azure Synapse Analytics per consentire agli utenti di eseguire attività amministrative e di accedere ai dati archiviati in questi database.
- Configurazione di accesso e autorizzazione dopo la creazione iniziale di un nuovo server.
- Come aggiungere account di accesso e account utente nel
master
database e negli account utente e quindi concedere queste autorizzazioni amministrative. - Come aggiungere account utente nei database utente, associati agli account di accesso o come account utente indipendenti.
- Configurare gli account utente con autorizzazioni nei database utente usando ruoli del database e 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 il server fa riferimento al server logico che gestisce i database per database SQL di Azure e Azure Synapse.
Nota
Microsoft Entra ID era precedentemente noto 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
master
database per gli account utente collegati a un account di accesso o archiviati nel database contenente gli account utente non collegati a un account di accesso.Nota
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 Istanza gestita di SQL di Azure domande frequenti.
Autenticazione Microsoft Entra
Con questo metodo di autenticazione, l'utente invia un nome account utente e richiede che il servizio usi le informazioni sulle credenziali archiviate nell'ID Microsoft Entra (in precedenza Azure Active Directory).
Account di accesso e utenti: un account utente in un database può essere associato a un account di accesso archiviato nel master
database o può essere un nome utente archiviato in un singolo database.
- Un account di accesso è un singolo account nel
master
database 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 per un server logico, aprire il portale di Azure e passare alla scheda Proprietà del server 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 servizio, aprire il portale di Azure, fare clic su SQL Server, selezionare il server dall'elenco e quindi fare clic su Reimposta password. Per reimpostare la password per il Istanza gestita di SQL, passare al portale di Azure, fare clic sull'istanza e fare clic su Reimposta 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 è configurato solo per l'accesso usando un singolo 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 amministratoredi 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 di Microsoft Entra per tutti i tipi di distribuzione SQL di Azure, vedere gli articoli seguenti:
In Istanza gestita di SQL creare account di accesso SQL con autorizzazioni amministrative complete
- Creare un account di accesso SQL aggiuntivo nel
master
database. - 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 di Microsoft Entra usando la sintassi CREATE LOGIN .
Nota
I
dbmanager
ruoli eloginmanager
non riguardano Istanza gestita di SQL di Azure distribuzioni.- Creare un account di accesso SQL aggiuntivo nel
Nel database SQL creare gli accessi SQL con autorizzazioni amministrative limitate
- Creare un account di accesso SQL aggiuntivo nel
master
database. - Aggiungere l'account di accesso ai ruoli a livello di server e
##MS_DatabaseConnector##
usando l'istruzione ALTER edizione Standard RVER ROLE.##MS_DatabaseManager##
##MS_LoginManager##
I membri di ruoli speciali
master
del database per database SQL di Azure hanno l'autorità di creare e gestire database o di creare e gestire 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 utilizzando l'account utentedbo
. Questi ruoli non dispongono di autorizzazioni esplicite all'esterno delmaster
database.Importante
Non è possibile creare un account di accesso SQL aggiuntivo con autorizzazioni amministrative complete in 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. Questo è specifico per database SQL di Azure.
- Creare un account di accesso SQL aggiuntivo nel
Nel pool SQL dedicato di Azure Synapse creare account di accesso SQL con autorizzazioni amministrative limitate
- Creare un account di accesso SQL aggiuntivo nel
master
database. - Creare un account utente nel
master
database associato a questo nuovo account di accesso. - Aggiungere l'account utente a
dbmanager
, illoginmanager
ruolo o entrambi nelmaster
database usando l'istruzione sp_addrolemember .
- Creare un account di accesso SQL aggiuntivo nel
Nel pool SQL serverless di Azure Synapse creare account di accesso SQL con autorizzazioni amministrative limitate
- Creare un account di accesso SQL aggiuntivo nel
master
database. - Aggiungere l'account di accesso SQL al ruolo predefinito del server sysadmin usando l'istruzione ALTER edizione Standard RVER ROLE.
- In alternativa, creare un account di accesso di Microsoft Entra usando la sintassi CREATE LOGIN .
- Creare un account di accesso SQL aggiuntivo nel
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
master
database. 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 database SQL, è sempre possibile creare questo tipo di account utente.
- Con Istanza gestita di SQL supportare le entità server di Microsoft Entra, è possibile creare account utente per l'autenticazione al Istanza gestita di SQL senza richiedere la creazione di utenti del database come 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 esiste in più database e si usa l'autenticazione SQL, è necessario mantenere le password sincronizzate manualmente. 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 in database SQL di Azure. In Istanza gestita di SQL, un account di accesso SQL con sysadmin
autorizzazioni può anche creare un account di accesso o un utente di Microsoft Entra.
Per esempi che illustrano come creare account di accesso e utenti, vedere:
- Creare l'account di accesso per database SQL di Azure
- Creare l'account di accesso per Istanza gestita di SQL di Azure
- Creare l'account di accesso per Azure Synapse
- Creare un utente
- Creazione di utenti indipendenti da Microsoft Entra
Suggerimento
Per un'esercitazione sulla sicurezza che include la creazione di utenti in database SQL di Azure, vedere Esercitazione: Proteggere 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:
- In database SQL di Azure e 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 di Microsoft Entra, inserire gli utenti di Microsoft Entra in un gruppo di sicurezza Microsoft Entra. Creare un utente di database indipendente per il gruppo. Aggiungere uno o più utenti del database come membro ai ruoli del database personalizzati o predefiniti con le autorizzazioni specifiche appropriate per tale 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.
- Sicurezza a livello di riga può essere utilizzato come limite alle cui righe 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.
Passaggi successivi
Per una panoramica di tutte le funzionalità di sicurezza database SQL di Azure e Istanza gestita di SQL, vedere Panoramica della sicurezza.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: nel corso del 2024 verranno dismessi i problemi di GitHub come meccanismo di feedback per il contenuto e verranno sostituiti con un nuovo sistema di feedback. Per altre informazioni, vedere:Invia e visualizza il feedback per