Abbiamo un utente Azure Active Directory a cui vogliamo assegnare determinati permessi ad un database SQL creato su Azure. Seguiamo questa guida passo a passo per concedere all’utente i permessi desiderati.
Azure Active Directory Authentication
Nel nostro scenario la connessione al Database Server è concessa solo agli utenti di Azure Active Directory.
Connessione al database
Come prima cosa, utilizzando Azure Data Studio o SSMS, colleghiamoci con il nostro utente amministratore al database al quale vogliamo aggiungere l’utente e concedergli i privilegi.
Creazione dell'utente
Dobbiamo a ora creare l’utente nel nostro database. Apriamo una finestra di Query e lanciamo questo comando:
CREATE USER [username@your-domain.com] FROM EXTERNAL PROVIDER;
GO
Ottenendo il messaggio seguente:
8:19:10 PMStarted executing query at Line 1
Commands completed successfully.
Total execution time: 00:00:00.472
Attribuzione dei privilegi
A questo punto non ci resta che attribuire all’utente appena creato i permessi desiderati lanciando questo comando:
ALTER ROLE db_datawriter ADD MEMBER [username@your-domain.com];
GO
Elenco dei ruoli disponibili
La seguente tabella dettaglia i ruoli disponibili in MSSQL. Per maggiori dettagli si rinvia alla documentazione ufficiale Microsoft.
Nome del ruolo predefinito del database | Descrizione |
---|---|
db_owner | I membri del db_owner ruolo predefinito del database possono eseguire tutte le attività di configurazione e manutenzione nel database drop e anche il database in SQL Server. In Database SQL e Azure Synapse alcune attività di manutenzione richiedono autorizzazioni a livello di server e non possono essere eseguite da ruoli db_owners. |
db_securityadmin | I membri del ruolo predefinito del database db_securityadmin possono modificare le appartenenze al ruolo solo per i ruoli personalizzati e gestire le autorizzazioni. I membri di questo ruolo possono potenzialmente elevare i propri privilegi ed è consigliabile monitorarne le azioni. |
db_accessadmin | I membri del ruolo predefinito del database db_accessadmin possono aggiungere o rimuovere le autorizzazioni di accesso al database per gli account di accesso di Windows, i gruppi di Windows e gli account di accesso di SQL Server . |
db_backupoperator | I membri del ruolo predefinito del database db_backupoperator possono eseguire il backup del database. |
db_ddladmin | I membri del ruolo predefinito del database db_ddladmin possono eseguire qualsiasi comando DDL (Data Definition Language) in un database. |
db_datawriter | I membri del ruolo predefinito del database db_datawriter possono aggiungere, eliminare o modificare i dati di tutte le tabelle utente. |
db_datareader | I membri del db_datareader ruolo predefinito del database possono leggere tutti i dati da tutte le tabelle e viste utente. Gli oggetti utente possono esistere in qualsiasi schema, ad eccezione di sys e INFORMATION_SCHEMA . |
db_denydatawriter | I membri del ruolo predefinito del database db_denydatawriter non possono aggiungere, modificare o eliminare dati delle tabelle utente contenute in un database. |
db_denydatareader | I membri del db_denydatareader ruolo predefinito del database non possono leggere dati dalle tabelle utente e dalle viste all’interno di un database. |
Revoca dei privilegi
Nel caso in cui vogliamo revocare i privilegi attribuiti all’utente, possiamo utilizzare il seguente comando:
ALTER ROLE db_datawriter DROP MEMBER [username@your-domain.com];
GO
Eliminazione dell'utente
Per eliminare definitivamente l’utente dal nostro database, possiamo utilizzare questo comando:
DROP USER [username@your-domain.com]
GO