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

In questo articolo vengono fornite informazioni su:

  • Opzioni per la configurazione di database Azure SQL, Istanza gestita di SQL di Azure e analisi Azure Synapse per consentire agli utenti di eseguire attività amministrative e di accedere ai dati archiviati in questi database.
  • Configurazione di accesso e autorizzazione dopo aver inizialmente creato un nuovo server.
  • Come aggiungere account di accesso e account utente nel database master 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 di database e autorizzazioni esplicite.

Importante

I database nel database Azure SQL, 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 che gestisce i database per Azure SQL Database e Azure Synapse.

Autenticazione e autorizzazione

L'autenticazione è il processo di dimostrazione che l'utente deve 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:

  • Autenticazione SQL.

    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 account di accesso o archiviato nel database contenente gli account utente non collegati a un account di accesso.

  • Autenticazione di Azure Active Directory

    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 Azure Active Directory (Azure AD).

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 account di 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 al ruolo del database dell'account utente e dalle autorizzazioni a livello di oggetto. È 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, si specifica un account di accesso amministratore e una password associata per tale account di accesso. Questo account amministrativo è denominato amministratore del server. La configurazione seguente di account di accesso e utenti nei database master e utente si verifica durante la distribuzione:

  • Viene creato un account di accesso SQL con privilegi amministrativi usando il nome di accesso specificato. Un account di accesso è un singolo account utente per l'accesso a database SQL, Istanza gestita di SQL e Azure Synapse.
  • Questo account di accesso viene concesso autorizzazioni amministrative complete per tutti i database come entità a livello di server. L'account di accesso dispone di 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 in Azure SQL Database).
  • Viene creato un account utente chiamato dbo per questo account di accesso in ogni database utente. L'utente dbo dispone di tutte le autorizzazioni di database nel database e viene eseguito il mapping al ruolo predefinito del db_owner database. Altri ruoli fissi del database vengono illustrati più avanti in questo articolo.

Per identificare gli account amministratore per un database, aprire il portale di Azure e passare alla scheda Proprietà del server o dell'istanza gestita.

Amministratori del server SQL

Screenshot che evidenzia l'opzione di menu Proprietà.

Importante

Non è possibile modificare il nome dell'account di accesso amministratore 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 alla 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 account di accesso aggiuntivi e utenti con autorizzazioni amministrative

A questo punto, il server o l'istanza gestita è configurata 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 Azure Active Directory con autorizzazioni amministrative complete

    Abilitare l'autenticazione di Azure Active Directory e creare un account di accesso amministratore di Azure AD. Un account Azure Active Directory può essere configurato come amministratore della distribuzione Azure SQL con autorizzazioni amministrative complete. Questo account può essere un singolo account o un account del gruppo di sicurezza. Un amministratore di Azure AD deve essere configurato se si desidera usare gli account Azure AD per connettersi a database SQL, Istanza gestita di SQL o Azure Synapse. Per informazioni dettagliate sull'abilitazione dell'autenticazione di Azure AD per tutti i tipi di distribuzione Azure SQL, vedere gli articoli seguenti:

  • In Istanza gestita di SQL creare account di accesso SQL con autorizzazioni amministrative complete

  • Nel database SQL 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, il loginmanager ruolo o entrambi nel master database usando l'istruzione ALTER ROLE (per Azure Synapse, usare l'istruzione sp_addrolemember).

    Nota

    dbmanagere loginmanager i ruoli non sono relativi alle distribuzioni Istanza gestita di SQL.

    I membri di questi ruoli speciali del database master per Azure SQL database hanno autorità per creare e gestire i database o per creare e gestire gli account di accesso. Nei database creati da un utente membro del dbmanager ruolo, il membro viene mappato al db_owner ruolo predefinito del database e può accedere e gestire tale database usando l'account dbo utente. Questi ruoli non dispongono di autorizzazioni esplicite all'esterno del database master.

    Importante

    Non è possibile creare un accesso SQL aggiuntivo con autorizzazioni amministrative complete nel database SQL.

Creare account per utenti non amministratori

È possibile creare account per gli 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 di accesso. Questo approccio è preferibile quando l'utente deve accedere a più database e si desidera mantenere sincronizzate le password. Tuttavia, questo approccio presenta complessità quando viene usata con la replica geografica perché l'account di accesso deve essere creato sia nel server primario che nei server secondari. Per altre informazioni, vedere Configurare e gestire Azure SQL Sicurezza del database per il ripristino geografico o il failover.

  • Creare un account utente

    Creare un account utente nel database in cui un utente deve accedere (chiamato anche un utente indipendente).

    • Con database SQL, è sempre possibile creare questo tipo di account utente.
    • Con Istanza gestita di SQL supportare le entità server di Azure AD, è possibile creare account utente per l'autenticazione nel Istanza gestita di SQL senza richiedere la creazione degli utenti del database come utente del database indipendente.

    Con questo approccio, le informazioni di autenticazione 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 Azure SQL Autenticazione, è necessario mantenere le password sincronizzate manualmente. Inoltre, se un utente ha un account in database diversi con password diverse, ricordare che queste password possono diventare un problema.

Importante

Per creare utenti indipendenti mappati alle identità di Azure AD, è necessario accedere usando un account Azure AD nel database in Azure SQL Database. In Istanza gestita di SQL un account di accesso SQL con sysadmin autorizzazioni può anche creare un account di accesso o un utente di Azure AD.

Per esempi che illustrano come creare account di accesso e utenti, vedere:

Suggerimento

Per un'esercitazione sulla sicurezza che include la creazione di utenti in Azure SQL Database, vedere Esercitazione: Proteggere Azure SQL Database.

Uso di ruoli predefiniti e personalizzati del database

Dopo aver creato un account utente in un database, in base a un account di accesso o come utente indipendente, è possibile autorizzare l'utente a eseguire varie azioni e ad accedere ai dati in un determinato database. È 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 definito di autorizzazioni. I ruoli predefiniti del database più comuni sono: 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. Ad esempio, il ruolo predefinito del database db_datareader concede l'accesso in lettura a ogni tabella del database, che è più di quanto sia strettamente necessario.

  • Ruolo database personalizzato

    Creare un ruolo del database personalizzato usando l'istruzione CREATE ROLE . Un ruolo personalizzato consente di creare ruoli di database personalizzati definiti dall'utente e concedere con attenzione a ogni ruolo le autorizzazioni meno 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 direttamente le autorizzazioni all'account utente. 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'autorizzazione UPDATE 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.

Uso di gruppi

La gestione efficiente degli accessi usa le autorizzazioni assegnate ai gruppi di sicurezza di Active Directory e ai ruoli predefiniti o personalizzati anziché ai singoli utenti.

  • Quando si usa l'autenticazione di Azure Active Directory, inserire gli utenti di Azure Active Directory in un gruppo di sicurezza di Azure Active Directory. Creare un utente di database indipendente per il gruppo. Aggiungere uno o più utenti di database come membro a ruoli di 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 tale gruppo di utenti.

    Nota

    È anche possibile usare gruppi per gli utenti di database non indipendenti.

È consigliabile acquisire familiarità con le funzionalità seguenti, utili per limitare o elevare le autorizzazioni:

Passaggi successivi

Per una panoramica di tutte le funzionalità di sicurezza di Azure SQL Database e Istanza gestita di SQL, vedere Panoramica della sicurezza.