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:

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

Screenshot che mostra la pagina delle proprietà di SQL Server in cui è possibile ottenere i valori di accesso amministratore server e amministratore di Microsoft Entra.

Screenshot che mostra la pagina delle proprietà di Istanza gestita di SQL in cui è possibile ottenere i valori di accesso amministratore di Microsoft Entra.

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

    Nota

    I ruoli dbmanager e loginmanager non riguardano le distribuzioni di istanze gestite di SQL Azure.

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

  • 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 ruolo loginmanager, o a entrambi nel master database usando l'istruzione sp_addrolemember.
  • Nel pool SQL serverless di Azure Synapse, creare gli accessi 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 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:

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.

  • 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 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:

Passaggio successivo