Proteggere il database SQL di AzureSecure your Azure SQL Database

I dati del database SQL sono protetti mediante:SQL Database secures your data by:

  • Limitazione dell'accesso al database con le regole del firewallLimiting access to your database using firewall rules
  • Uso di meccanismi di autenticazione che verificano l'identitàUsing authentication mechanisms that require their identity
  • Autorizzazione ai dati tramite appartenenze e autorizzazioni basate su ruoliAuthorization to data through role-based memberships and permissions,
  • Sicurezza a livello di rigaRow-level security
  • Maschera dati dinamicaDynamic data masking

Il database SQL offre anche funzioni sofisticate di monitoraggio, controllo e rilevamento delle minacce.SQL Database also has sophisticated monitoring, auditing, and threat detection.

È possibile migliorare la protezione del database contro utenti malintenzionati o accessi non autorizzati con pochi semplici passaggi.You can improve the protection of your database against malicious users or unauthorized access with just a few simple steps. In questa esercitazione si apprenderà come:In this tutorial you learn to:

  • Configurare regole del firewall a livello di server per il server nel portale di AzureSet up server-level firewall rules for your server in the Azure portal
  • Configurare regole del firewall a livello di database per il database con SQL Server Management StudioSet up database-level firewall rules for your database using SSMS
  • Connettersi al database usando una stringa di connessione protettaConnect to your database using a secure connection string
  • Gestire l'accesso utenteManage user access
  • Proteggere i dati con la crittografiaProtect your data with encryption
  • Abilitare il controllo del database SQLEnable SQL Database auditing
  • Abilitare il rilevamento delle minacce per il database SQLEnable SQL Database threat detection

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

prerequisitiPrerequisites

Per completare questa esercitazione, accertarsi di avere:To complete this tutorial, make sure you have the following:

Accedere al Portale di AzureLog in to the Azure portal

Accedere al Portale di Azure.Log in to the Azure portal.

Creare una regola del firewall a livello di server nel portale di AzureCreate a server-level firewall rule in the Azure portal

I database SQL sono protetti da un firewall in Azure.SQL databases are protected by a firewall in Azure. Per impostazione predefinita, vengono rifiutate tutte le connessioni al server e ai database all'interno del server ad eccezione delle connessioni di altri servizi di Azure.By default, all connections to the server and the databases inside the server are rejected except for connections from other Azure services. Per altre informazioni, vedere Regole firewall a livello di server e di database per il database SQL di Azure.For more information, see Azure SQL Database server-level and database-level firewall rules.

La configurazione più sicura consiste nell'impostare "Consenti l'accesso a Servizi di Azure" su NON ATTIVO.The most secure configuration is to set 'Allow access to Azure services' to OFF. Se è necessario connettersi al database da un servizio cloud o da una macchina virtuale di Azure, è necessario creare un indirizzo IP riservato e consentire solo a questo indirizzo l'accesso tramite firewall.If you need to connect to the database from an Azure VM or cloud service, you should create a Reserved IP and allow only the reserved IP address access through the firewall.

Seguire questa procedura per creare una regola del firewall a livello di server del database SQL per il server per consentire le connessioni dall'indirizzo IP specifico.Follow these steps to create a SQL Database server-level firewall rule for your server to allow connections from a specific IP address.

Nota

Se è stato creato un database di esempio in Azure usando una delle esercitazioni o guide rapide precedenti e si sta eseguendo questa esercitazione in un computer con lo stesso indirizzo IP assegnato durante l'esecuzione delle esercitazioni, è possibile ignorare questo passaggio perché la regola del firewall a livello di server è già stata creata.If you have created a sample database in Azure using one of the previous tutorials or quickstarts and are performing this tutorial on a computer with the same IP address that it had when you walked through those tutorials, you can skip this step as you will have already created a server-level firewall rule.

  1. Fare clic su Database SQL nel menu a sinistra e scegliere il database in cui si desidera configurare la regola di firewall nella pagina Database SQL.Click SQL databases from the left-hand menu and click the database you would like to configure the firewall rule for on the SQL databases page. Si apre la pagina di panoramica per il database che visualizza il nome completo del server, ad esempio mynewserver20170313.database.windows.net, e offre altre opzioni di configurazione.The overview page for your database opens, showing you the fully qualified server name (such as mynewserver-20170313.database.windows.net) and provides options for further configuration.

    Regola del firewall del server

  2. Fare clic su Imposta firewall server sulla barra degli strumenti, come illustrato nell'immagine precedente.Click Set server firewall on the toolbar as shown in the previous image. Si apre la pagina Impostazioni del firewall per il server del database SQL.The Firewall settings page for the SQL Database server opens.

  3. Fare clic su Aggiungi IP client sulla barra degli strumenti per aggiungere l'indirizzo IP pubblico del computer connesso al portale o immettere manualmente la regola del firewall e quindi fare clic su Salva.Click Add client IP on the toolbar to add the public IP address of the computer connected to the portal with or enter the firewall rule manually and then click Save.

    Impostare la regola del firewall del server

  4. Fare clic su OK e quindi sulla X per chiudere la pagina Impostazioni del firewall.Click OK and then click the X to close the Firewall settings page.

È ora possibile connettersi a qualsiasi database nel server con l'indirizzo IP specificato o con un intervallo di indirizzi IP.You can now connect to any database in the server with the specified IP address or IP address range.

Nota

Il database SQL comunica attraverso la porta 1433.SQL Database communicates over port 1433. Se si sta tentando di connettersi da una rete aziendale, il traffico in uscita attraverso la porta 1433 potrebbe non essere autorizzato dal firewall della rete.If you are trying to connect from within a corporate network, outbound traffic over port 1433 may not be allowed by your network's firewall. In questo caso, non sarà possibile connettersi al server del database SQL di Azure, a meno che il reparto IT non apra la porta 1433.If so, you will not be able to connect to your Azure SQL Database server unless your IT department opens port 1433.

Creare una regola del firewall a livello di database con SQL Server Management StudioCreate a database-level firewall rule using SSMS

Le regole del firewall a livello di database consentono di creare impostazioni del firewall diverse per database differenti all'interno dello stesso server logico e di creare regole del firewall che possono essere trasferite, ovvero che seguono il database durante un failover anziché essere archiviate nel computer SQL Server.Database-level firewall rules enable you to create different firewall settings for different databases within the same logical server and to create firewall rules that are portable - meaning that they follow the database during a failover rather than being stored on the SQL server. Le regole del firewall a livello di database possono essere configurate solo usando le istruzioni Transact-SQL e solo dopo aver configurato la prima regola del firewall a livello di server.Database-level firewall rules can only be configured by using Transact-SQL statements and only after you have configured the first server-level firewall rule. Per altre informazioni, vedere Regole firewall a livello di server e di database per il database SQL di Azure.For more information, see Azure SQL Database server-level and database-level firewall rules.

Per creare una regola del firewall specifiche del database seguire questa procedura.Follows these steps to create a database-specific firewall rule.

  1. Connettersi al database, ad esempio usando SQL Server Management Studio.Connect to your database, for example using SQL Server Management Studio.

  2. In Esplora oggetti fare clic con il tasto destro del mouse sul database a cui si desidera aggiungere una regola del firewall e fare clic su Nuova query.In Object Explorer, right-click on the database you want to add a firewall rule for and click New Query. Viene visualizzata una finestra di query vuota, connessa al database.A blank query window opens that is connected to your database.

  3. Nella finestra di query sostituire l'indirizzo IP con l'indirizzo IP pubblico e quindi eseguire la query seguente:In the query window, modify the IP address to your public IP address and then execute the following query:

    EXECUTE sp_set_database_firewall_rule N'Example DB Rule','0.0.0.4','0.0.0.4';
    
  4. Sulla barra degli strumenti fare clic su Esegui per creare la regola del firewall.On the toolbar, click Execute to create the firewall rule.

Come connettere un'applicazione al database usando una stringa di connessione protettaView how to connect an application to your database using a secure connection string

Per garantire una connessione crittografata e protetta tra l'applicazione client e il database SQL, la stringa di connessione deve essere configurata per:To ensure a secure, encrypted connection between a client application and SQL Database, the connection string has to be configured to:

  • Richiedere una connessione crittografata, eRequest an encrypted connection, and
  • Non considerare attendibile il certificato del server.To not trust the server certificate.

Questo consente di stabilire una connessione tramite Transport Layer Security (TLS) e di ridurre il rischio di attacco man-in-the-middle .This establishes a connection using Transport Layer Security (TLS) and reduces the risk of man-in-the-middle attacks. È possibile ottenere stringhe di connessione configurate correttamente per il database SQL per i driver di client supportati nel portale di Azure, come illustrato per ADO.net in questo screenshot.You can obtain correctly configured connection strings for your SQL Database for supported client drivers from the Azure portal as shown for ADO.net in this screenshot. Per informazioni su TLS e la connettività, vedere Considerazioni su TLS.For information about TLS and connectivity, see TLS considerations.

  1. Scegliere Database SQL dal menu a sinistra, quindi fare clic sul database nella pagina Database SQL.Select SQL databases from the left-hand menu, and click your database on the SQL databases page.

  2. Nella pagina Panoramica del database fare clic su Mostra stringhe di connessione del database.On the Overview page for your database, click Show database connection strings.

  3. Esaminare la stringa di connessione completa ADO.NET.Review the complete ADO.NET connection string.

    Stringa di connessione ADO.NET

Creazione degli utenti del databaseCreating database users

Prima di creare gli utenti, è innanzitutto necessario scegliere uno dei due tipi di autenticazione supportati dal database SQL di Azure:Before creating any users, you must first choose from one of two authentication types supported by Azure SQL Database:

Autenticazione di SQL, che usa nome utente e password per gli accessi e gli utenti che sono validi solo nel contesto di un database specifico all'interno di un server logico.SQL Authentication, which uses username and password for logins and users that are valid only in the context of a specific database within a logical server.

Autenticazione di Azure Active Directory, che usa identità gestite da Azure Active Directory.Azure Active Directory Authentication, which uses identities managed by Azure Active Directory.

Se si desidera usare Azure Active Directory per l'autenticazione nel database SQL, deve esistere un Azure Active Directory popolato prima di continuare.If you want to use Azure Active Directory to authenticate against SQL Database, a populated Azure Active Directory must exist before you can proceed.

Seguire questa procedura per creare un utente tramite l'autenticazione di SQL:Follow these steps to create a user using SQL Authentication:

  1. Connettersi al database, ad esempio usando SQL Server Management Studio con le credenziali di amministratore del server.Connect to your database, for example using SQL Server Management Studio using your server admin credentials.

  2. In Esplora oggetti fare clic con il tasto destro del mouse sul database a cui si desidera aggiungere un nuovo utente e fare clic su Nuova query.In Object Explorer, right-click on the database you want to add a new user on and click New Query. Viene visualizzata una finestra di query vuota, connessa al database selezionato.A blank query window opens that is connected to the selected database.

  3. Nella finestra delle query, immettere la query seguente:In the query window, enter the following query:

    CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
    
  4. Sulla barra degli strumenti fare clic su Esegui per creare l'utente.On the toolbar, click Execute to create the user.

  5. Per impostazione predefinita, l'utente può connettersi al database, ma non dispone delle autorizzazioni per leggere o scrivere dati.By default, the user can connect to the database, but has no permissions to read or write data. Per concedere le autorizzazioni all'utente appena creato, eseguire i due comandi seguenti in una nuova finestra di queryTo grant these permissions to the newly created user, execute the following two commands in a new query window

    ALTER ROLE db_datareader ADD MEMBER ApplicationUser;
    ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
    

È consigliabile creare gli account non amministratore a livello di database per la connessione al database, a meno che non sia necessario eseguire le attività di amministrazione quali la creazione di nuovi utenti.It is best practice to create these non-administrator accounts at the database level to connect to your database unless you need to execute administrator tasks like creating new users. Rivedere l'esercitazione di Azure Active Directory su come eseguire l'autenticazione con Azure Active Directory.Please review the Azure Active Directory tutorial on how to authenticate using Azure Active Directory.

Proteggere i dati con la crittografiaProtect your data with encryption

Transparent Data Encryption, ovvero TDE, di database SQL di Azure consente di crittografare automaticamente i dati inattivi, senza richiedere alcuna modifica all'applicazione che accede al database crittografato.Azure SQL Database transparent data encryption (TDE) automatically encrypts your data at rest, without requiring any changes to the application accessing the encrypted database. Per i nuovi database creati, la crittografia TDE è attiva per impostazione predefinita.For newly created databases, TDE is on by default. Per abilitare la crittografia TDE per il database oppure per verificare che sia attivata, seguire questa procedura:To enable TDE for your database or to verify that TDE is on, follow these steps:

  1. Scegliere Database SQL dal menu a sinistra, quindi fare clic sul database nella pagina Database SQL.Select SQL databases from the left-hand menu, and click your database on the SQL databases page.

  2. Fare clic su Transparent Data Encryption per aprire la pagina di configurazione di TDE.Click on Transparent data encryption to open the configuration page for TDE.

    Transparent Data Encryption

  3. Se necessario, impostare Crittografia dati su Sì e fare clic su Salva.If necessary, set Data encryption to ON and click Save.

Il processo di crittografia viene avviato in background.The encryption process starts in the background. È possibile monitorare lo stato di avanzamento connettendosi al database SQL con SQL Server Management Studio ed eseguendo una query sulla colonna encryption_state della visualizzazione sys.dm_database_encryption_keys.You can monitor the progress by connecting to SQL Database using SQL Server Management Studio and querying the encryption_state column of the sys.dm_database_encryption_keys view. Lo stato 3 indica che il database è crittografato.A state of 3 indicates that the database is encrypted.

Abilitare il controllo del database SQL, se necessarioEnable SQL Database auditing, if necessary

Il controllo del database SQL di Azure tiene traccia degli eventi che si verificano nel database e li registra in un log di controllo nell'account di Archiviazione di Azure dell'utente.Azure SQL Database Auditing tracks database events and writes them to an audit log in your Azure Storage account. Il controllo consente di agevolare la conformità alle normative, comprendere le attività del database e ottenere informazioni su eventuali discrepanze e anomalie che potrebbero indicare potenziali violazioni della sicurezza.Auditing can help you maintain regulatory compliance, understand database activity, and gain insight into discrepancies and anomalies that could indicate potential security violations. Per creare un criterio di controllo predefinito per il database SQL, seguire questa procedura:Follow these steps to create a default auditing policy for your SQL database:

  1. Scegliere Database SQL dal menu a sinistra, quindi fare clic sul database nella pagina Database SQL.Select SQL databases from the left-hand menu, and click your database on the SQL databases page.

  2. Nel pannello Impostazioni selezionare Controllo e rilevamento minacce.In the Settings blade, select Auditing & Threat Detection. Si noti che il controllo a livello di server è disabilitato ed è disponibile un collegamento Visualizza impostazioni del server che consente di visualizzare o modificare le impostazioni di controllo del server da questo contesto.Notice that sever-level auditing is diabled and that there is a View server settings link that allows you to view or modify the server auditing settings from this context.

    Pannello di controllo

  3. Se si preferisce abilitare un tipo di controllo (o una posizione) diverso da quello specificato a livello di server, attivare Controllo e scegliere il tipo di controllo BLOB.If you prefer to enable an Audit type (or location?) different from the one specified at the server level, turn ON Auditing, and choose the Blob Auditing Type. Se il controllo BLOB del server è abilitato, il controllo configurato del database coesisterà con il controllo BLOB del server.If server Blob auditing is enabled, the database-configured audit will exist side-by-side with the server Blob audit.

    Attivare il controllo

  4. Selezionare i Dettagli di archiviazione per aprire il pannello di archiviazione dei log di controllo.Select Storage Details to open the Audit Logs Storage Blade. Selezionare l'account di archiviazione di Azure in cui verranno salvati i log e il periodo di conservazione, dopo il quale verranno eliminati i vecchi log, quindi fare clic su OK nella parte inferiore.Select the Azure storage account where logs will be saved, and the retention period, after which the old logs will be deleted, then click OK at the bottom.

    Suggerimento

    Per sfruttare al massimo i modelli di report di controllo, usare lo stesso account di archiviazione per tutti i database controllati.Use the same storage account for all audited databases to get the most out of the auditing reports templates.

  5. Fare clic su Save.Click Save.

Importante

Se si vuole, è possibile personalizzare gli eventi controllati tramite PowerShell o l'API REST. Per altre informazioni, vedere l'articolo relativo al servizio di controllo del database SQL.If you want to customize the audited events, you can do this via PowerShell or REST API - see SQL database auditing for more information.

Abilitare il rilevamento delle minacce per il database SQLEnable SQL Database threat detection

Il rilevamento delle minacce offre un nuovo livello di protezione, che consente ai clienti di rilevare e rispondere alle minacce potenziali non appena si verificano, fornendo avvisi di sicurezza sulle attività anomale.Threat Detection provides a new layer of security, which enables customers to detect and respond to potential threats as they occur by providing security alerts on anomalous activities. Gli utenti possono esaminare gli eventi sospetti tramite il servizio di controllo del database SQL per determinare se sono il risultato di un tentativo di accesso, una violazione o un exploit dei dati del database.Users can explore the suspicious events using SQL Database Auditing to determine if they result from an attempt to access, breach or exploit data in the database. Il rilevamento delle minacce rende più semplice affrontare le minacce potenziali al database, senza dover essere esperti della sicurezza o gestire sistemi di controllo di sicurezza avanzati.Threat Detection makes it simple to address potential threats to the database without the need to be a security expert or manage advanced security monitoring systems. Ad esempio, la funzionalità di rilevamento delle minacce individua determinate attività anomale nel database che indicano potenziali tentativi di attacco SQL injection.For example, Threat Detection detects certain anomalous database activities indicating potential SQL injection attempts. L'attacco SQL injection è uno dei problemi di sicurezza comuni delle applicazioni Web su Internet, che viene usato per attaccare le applicazioni guidate dai dati.SQL injection is one of the common Web application security issues on the Internet, used to attack data-driven applications. Gli autori di attacchi sfruttano le vulnerabilità delle applicazioni per introdurre istruzioni SQL dannose nei campi di immissione dell'applicazione, per violare o modificare i dati nel database.Attackers take advantage of application vulnerabilities to inject malicious SQL statements into application entry fields, for breaching or modifying data in the database.

  1. Passare al pannello di configurazione del database SQL che si vuole monitorare.Navigate to the configuration blade of the SQL database you want to monitor. Nel pannello Impostazioni selezionare Controllo e rilevamento minacce.In the Settings blade, select Auditing & Threat Detection.

    Riquadro di spostamento

  2. Nel pannello di configurazione Controllo e rilevamento minacce impostare il controllo su , il che consentirà di visualizzare le impostazioni di rilevamento minacce.In the Auditing & Threat Detection configuration blade turn ON auditing, which will display the threat detection settings.

  3. Impostare il rilevamento delle minacce su .Turn ON threat detection.

  4. Configurare l'elenco di indirizzi di posta elettronica che riceveranno avvisi di sicurezza in caso di rilevamento di attività di database anomale.Configure the list of emails that will receive security alerts upon detection of anomalous database activities.

  5. Fare clic su Salva nel pannello di configurazione Controllo e rilevamento minacce per salvare il controllo nuovo o aggiornato e i criteri di rilevamento delle minacce.Click Save in the Auditing & Threat detection blade to save the new or updated auditing and threat detection policy.

    Riquadro di spostamento

    Se vengono rilevate attività anomale del database, si riceverà una notifica tramite posta elettronica.If anomalous database activities are detected, you will receive an email notification upon detection of anomalous database activities. Il messaggio di posta elettronica fornirà informazioni sull'evento di sicurezza sospetto, inclusi la natura delle attività anomale, il nome del database, il nome del server e l'ora dell'evento.The email will provide information on the suspicious security event including the nature of the anomalous activities, database name, server name and the event time. Verranno anche fornite informazioni sulle possibili cause e le azioni consigliate per analizzare e ridurre il rischio di una potenziale minaccia al database.In addition, it will provide information on possible causes and recommended actions to investigate and mitigate the potential threat to the database. I passaggi successivi illustrano la procedura consigliata per un utente che riceva un messaggio di posta simile al seguente:The next steps walk you through what to do should you receive such an email:

    Messaggio di posta elettronica sul rilevamento delle minacce

  6. Nel messaggio di posta elettronica fare clic sul collegamento al log di controllo SQL di Azure che avvierà il portale di Azure visualizzando i record di controllo pertinenti intorno all'ora dell'evento sospetto.In the email, click on the Azure SQL Auditing Log link, which will launch the Azure portal and show the relevant auditing records around the time of the suspicious event.

    Record di controllo

  7. Fare clic sui record di controllo per visualizzare altre informazioni sulle attività di database sospette come l'istruzione SQL, il motivo dell'errore e l'indirizzo IP del client.Click on the audit records to view more information on the suspicious database activities such as SQL statement, failure reason and client IP.

    Dettagli sui record

  8. Nel pannello Auditing Records (Controllo record) fare clic su Apri in Excel per aprire un modello Excel preconfigurato per importare ed eseguire un'analisi più approfondita del log di controllo sull'orario in cui si è verificato l'evento sospetto.In the Auditing Records blade, click Open in Excel to open a pre-configured excel template to import and run deeper analysis of the audit log around the time of the suspicious event.

    Nota

    In Excel 2010 o in una versione successiva sono richiesti Power Query e l'impostazione Combinazione rapida.In Excel 2010 or later, Power Query and the Fast Combine setting is required.

    Aprire i record in Excel

  9. Per configurare l'impostazione Combinazione rapida, nella scheda della barra multifunzione POWER QUERY selezionare Opzioni per visualizzare la finestra di dialogo Opzioni.To configure the Fast Combine setting - In the POWER QUERY ribbon tab, select Options to display the Options dialog. Selezionare la sezione Privacy e scegliere la seconda opzione - "Ignora i livelli di privacy per un potenziale miglioramento delle prestazioni":Select the Privacy section and choose the second option - 'Ignore the Privacy Levels and potentially improve performance':

    Combinazione rapida di Excel

  10. Per caricare i log di controllo SQL, assicurarsi che i parametri nella scheda Impostazioni siano configurati correttamente e quindi selezionare "Dati" sulla barra multifunzione e fare clic sul pulsante "Aggiorna tutto".To load SQL audit logs, ensure that the parameters in the settings tab are set correctly and then select the 'Data' ribbon and click the 'Refresh All' button.

    Parametri di Excel

  11. I risultati vengono visualizzati nel foglio dei log di controllo SQL che consente di eseguire un'analisi più approfondita delle attività anomale rilevate e di ridurre l'impatto dell'evento di sicurezza nell'applicazione.The results appear in the SQL Audit Logs sheet which enables you to run deeper analysis of the anomalous activities that were detected, and mitigate the impact of the security event in your application.

Passaggi successiviNext steps

In questa esercitazione è stato descritto come migliorare la protezione del database contro utenti malintenzionati o accessi non autorizzati con pochi semplici passaggi.In this tutorial, you learned to improve the protection of your database against malicious users or unauthorized access with just a few simple steps. Si è appreso come:You learned how to:

  • Configurare regole del firewall per il server e/o il databaseSet up firewall rules for your server and or database
  • Connettersi al database usando una stringa di connessione protettaConnect to your database using a secure connection string
  • Gestire l'accesso utenteManage user access
  • Proteggere i dati con la crittografiaProtect your data with encryption
  • Abilitare il controllo del database SQLEnable SQL Database auditing
  • Abilitare il rilevamento delle minacce per il database SQLEnable SQL Database threat detection

Passare all'esercitazione successiva per informazioni su come implementare un database di distribuzione geografica.Advance to the next tutorial to learn how to implement a geo-distributed database.