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:

  • 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 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 database db_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.

Screenshot shows the SQL Server Properties page where you can obtain the Server admin login and Microsoft Entra admin values.

Screenshot shows the SQL managed instance Properties page where you can obtain the login and Microsoft Entra admin values.

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

    Nota

    I dbmanager ruoli e loginmanager non riguardano Istanza gestita di SQL di Azure distribuzioni.

  • Nel database SQL creare gli accessi SQL con autorizzazioni amministrative limitate

    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 ruolo dbmanager, il membro viene mappato al ruolo predefinito del database db_owner e può accedere a tale database e gestirlo utilizzando l'account utente dbo. Questi ruoli non dispongono di autorizzazioni esplicite all'esterno del master 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.

  • 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, il loginmanager ruolo o entrambi nel master database usando l'istruzione sp_addrolemember .
  • Nel pool SQL serverless di Azure Synapse creare account di accesso SQL con autorizzazioni amministrative limitate

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:

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.

  • 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'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.

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:

Passaggi successivi

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