Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra le nozioni di base per proteggere il pool SQL dedicato (in precedenza SQL Data Warehouse). In particolare, questo articolo illustra come iniziare a usare le risorse per limitare l'accesso, proteggere i dati e monitorare le attività usando il pool SQL dedicato (in precedenza SQL Data Warehouse).
Sicurezza delle connessioni
La sicurezza delle connessioni si riferisce al modo in cui si limitano e si proteggono le connessioni al database usando regole del firewall e crittografia della connessione.
Le regole del firewall vengono usate sia dal server SQL logico che dai relativi database per rifiutare i tentativi di connessione da indirizzi IP che non sono stati approvati in modo esplicito. Per consentire le connessioni dall'indirizzo IP pubblico dell'applicazione o del computer client, è prima necessario creare una regola del firewall a livello di server usando il portale di Azure, l'API REST o PowerShell.
Come procedura consigliata, è consigliabile limitare gli intervalli di indirizzi IP consentiti tramite il firewall a livello di server il più possibile. Per accedere al pool SQL dedicato (in precedenza SQL Data Warehouse) dal computer locale, assicurarsi che il firewall nella rete e nel computer locale consenta la comunicazione in uscita sulla porta TCP 1433.
Il pool SQL dedicato (in precedenza SQL Data Warehouse) usa regole del firewall IP a livello di server. Non supporta regole del firewall IP a livello di database. Per altre informazioni, vedere regole del firewall del database SQL di Azure
Le connessioni al pool SQL dedicato (in precedenza SQL Data Warehouse) vengono crittografate per impostazione predefinita. La modifica delle impostazioni di connessione per disabilitare la crittografia viene ignorata.
Autenticazione
L'autenticazione si riferisce al modo in cui si dimostra l'identità durante la connessione al database. Il pool SQL dedicato (in precedenza SQL Data Warehouse) supporta attualmente l'autenticazione di SQL Server con nome utente e password e con l'ID Microsoft Entra.
Quando è stato creato il server per il database, è stato specificato un account di accesso "amministratore server" con nome utente e password. Usando queste credenziali, è possibile eseguire l'autenticazione a qualsiasi database in tale server come proprietario del database o "dbo" tramite l'autenticazione di SQL Server.
Tuttavia, come procedura consigliata, gli utenti dell'organizzazione devono usare un account diverso per l'autenticazione. In questo modo è possibile limitare le autorizzazioni concesse all'applicazione e ridurre i rischi di attività dannose nel caso in cui il codice dell'applicazione sia vulnerabile a un attacco SQL injection.
Per creare un utente autenticato di SQL Server, connettersi al database master nel server con l'account di accesso amministratore del server e creare un nuovo account di accesso al server. È consigliabile creare anche un utente nel database master. La creazione di un utente nel master consente a un utente di accedere usando strumenti come SSMS senza specificare un nome di database. Consente inoltre di usare Esplora oggetti per visualizzare tutti i database in un server.
-- Connect to master database and create a login
CREATE LOGIN ApplicationLogin WITH PASSWORD = 'Str0ng_password';
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;
Connettiti quindi al tuo pool SQL dedicato (precedentemente SQL Data Warehouse) utilizzando l'accesso amministrativo al server e crea un utente del database basato sull'accesso al server che hai creato.
-- Connect to the database and create a database user
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;
Per concedere a un utente l'autorizzazione per eseguire operazioni aggiuntive, ad esempio la creazione di account di accesso o la creazione di nuovi database, assegnare l'utente ai ruoli Loginmanager
e dbmanager
nel database master.
Per altre informazioni su questi ruoli aggiuntivi e sull'autenticazione in un database SQL, vedere Gestione di database e account di accesso nel database SQL di Azure. Per altre informazioni sulla connessione tramite Microsoft Entra ID, vedere Connessione tramite l'autenticazione di Microsoft Entra.
Autorizzazione
L'autorizzazione fa riferimento alle operazioni che è possibile eseguire all'interno di un database dopo l'autenticazione e la connessione. I privilegi di autorizzazione sono determinati dalle appartenenze ai ruoli e dalle autorizzazioni. Come procedura consigliata, è consigliabile concedere agli utenti i privilegi minimi necessari. Per gestire i ruoli, puoi utilizzare le procedure conservate seguenti:
EXEC sp_addrolemember 'db_datareader', 'ApplicationUser'; -- allows ApplicationUser to read data
EXEC sp_addrolemember 'db_datawriter', 'ApplicationUser'; -- allows ApplicationUser to write data
L'account amministratore del server a cui ci si connette è un membro di db_owner, che ha l'autorità di eseguire qualsiasi operazione all'interno del database. Salvare questo account per distribuire gli aggiornamenti dello schema e altre operazioni di gestione. Usare l'account "ApplicationUser" con autorizzazioni più limitate per connettersi dall'applicazione al database con i privilegi minimi necessari per l'applicazione.
Esistono modi per limitare ulteriormente le operazioni che un utente può eseguire all'interno del database:
- Le autorizzazioni granulari consentono di controllare quali operazioni è possibile eseguire su singole colonne, tabelle, viste, schemi, routine e altri oggetti nel database. Usare autorizzazioni granulari per avere il maggior controllo e concedere le autorizzazioni minime necessarie.
- i ruoli del database diversi da db_datareader e db_datawriter possono essere usati per creare account utente dell'applicazione più potenti o account di gestione meno potenti. I ruoli predefiniti del database offrono un modo semplice per concedere le autorizzazioni, ma possono comportare la concessione di più autorizzazioni rispetto a quelle necessarie.
- Le procedure memorizzate possono essere usate per limitare le azioni eseguibili sul database.
Nell'esempio seguente viene concesso l'accesso in lettura a uno schema definito dall'utente.
--CREATE SCHEMA Test
GRANT SELECT ON SCHEMA::Test to ApplicationUser
La gestione di database e server dal portale di Azure o l'uso dell'API di Azure Resource Manager è controllata dalle assegnazioni di ruolo dell'account utente del portale. Per ulteriori informazioni, vedi Assegnare ruoli di Azure usando il portale di Azure.
Crittografia
Transparent Data Encryption (TDE) consente di proteggersi dalla minaccia di attività dannose crittografando e decrittografando i dati inattivi. Quando si crittografa il database, i backup associati e i file di log delle transazioni vengono crittografati senza richiedere modifiche alle applicazioni. TDE esegue la crittografia dello spazio di archiviazione di un intero database usando una chiave simmetrica detta "chiave di crittografia del database".
Nel database SQL la chiave di crittografia del database è protetta da un certificato server predefinito. Il certificato server predefinito è univoco per ogni server. Microsoft ruota automaticamente questi certificati almeno ogni 90 giorni. L'algoritmo di crittografia usato è AES-256. Per una descrizione generale di TDE, vedere Transparent Data Encryption.
È possibile crittografare il database usando il portale di Azure o T-SQL.
Passaggi successivi
Per informazioni dettagliate ed esempi sulla connessione al warehouse con protocolli diversi, vedere Connettersi al pool SQL dedicato (in precedenza SQL Data Warehouse).