Protezione del Database SQLSecuring your SQL Database

In questo articolo vengono esaminate le informazioni di base relative alla protezione del livello dati di un'applicazione in cui viene utilizzato il database SQL di Azure.This article walks through the basics of securing the data tier of an application using Azure SQL Database. In particolare, questo articolo consente di iniziare a usare le risorse per la protezione dei dati, il controllo dell'accesso e il monitoraggio proattivo.In particular, this article gets you started with resources for protecting data, controlling access, and proactive monitoring.

Per una panoramica completa delle funzionalità di sicurezza disponibili in tutte le versioni di SQL, vedere il Centro sicurezza PC per il motore di database di SQL Server e per il database SQL di Azure.For a complete overview of security features available on all flavors of SQL, see the Security Center for SQL Server Database Engine and Azure SQL Database. Ulteriori informazioni sono inoltre disponibili nel white paper tecnico di protezione e del Database di SQL Azure (PDF).Additional information is also available in the Security and Azure SQL Database technical white paper (PDF).

Proteggere i datiProtect data

CrittografiaEncryption

Il database SQL protegge i dati in movimento con la crittografia Transport Layer Security, i dati inattivi con la crittografia Transparent Data Encryption e i dati in uso con la crittografia Always Encrypted.SQL Database secures your data by providing encryption for data in motion with Transport Layer Security, for data at rest with Transparent Data Encryption, and for data in use with Always Encrypted.

Importante

Tutte le connessioni al database SQL di Azure richiedono la crittografia SSL/TLS (SSL/TLS) in qualsiasi caso quando i dati sono "in transito" da e verso il database in qualsiasi momento.All connections to Azure SQL Database require encryption (SSL/TLS) at all times while data is "in transit" to and from the database. Nella stringa di connessione dell'applicazione è necessario specificare parametri per crittografare la connessione e non considerare attendibile il certificato del server (ciò viene eseguito automaticamente se si copia la stringa di connessione dal portale di Azure). In caso contrario, la connessione non verifica l'identità del server e sono possibili attacchi "man-in-the-middle".In your application's connection string, you must specify parameters to encrypt the connection and not to trust the server certificate (this is done for you if you copy your connection string out of the Azure portal), otherwise the connection does not verify the identity of the server and is susceptible to "man-in-the-middle" attacks. Per il driver ADO.NET, ad esempio, questi parametri della stringa di connessione sono Encrypt=True e TrustServerCertificate=False.For the ADO.NET driver, for instance, these connection string parameters are Encrypt=True and TrustServerCertificate=False. Per informazioni su TLS e sulla connettività, vedere Considerazioni su TLSFor information about TLS and connectivity, see TLS considerations

Per altri modi di crittografare i dati, considerare quanto segue:For other ways to encrypt your data, consider:

Individuazione dati e classificazioneData Discovery & Classification

Individuazione dati e classificazione (attualmente in anteprima) offre funzionalità avanzate incorporate nel database SQL di Azure per l'individuazione, la classificazione e la protezione dei dati sensibili presenti nel database, nonché per l'aggiunta di etichette a tali dati.Data Discovery & Classification (currently in preview) provides advanced capabilities built into Azure SQL Database for discovering, classifying, labeling, and protecting the sensitive data in your databases. L'individuazione e la classificazione dei dati più sensibili (dati commerciali e finanziari, dati relativi all'assistenza sanitaria, informazioni personali e così via) possono svolgere un ruolo fondamentale per il livello di protezione delle informazioni aziendali.Discovering and classifying your utmost sensitive data (business/financial, healthcare, PII, etc.) can play a pivotal role in your organizational Information protection stature. Individuazione dati e classificazione può svolgere la funzione di infrastruttura per:It can serve as infrastructure for:

  • Vari scenari di sicurezza, ad esempio monitoraggio (controllo) e invio di avvisi sulle anomalie di accesso a dati sensibili.Various security scenarios, such as monitoring (auditing) and alerting on anomalous access to sensitive data.
  • Controllare l'accesso ai database che contengono dati molto sensibili e rafforzarne la sicurezza.Controlling access to, and hardening the security of, databases containing highly-sensitive data.
  • Contribuire a soddisfare gli standard e i requisiti di conformità alle normative sulla privacy dei dati.Helping meet data privacy standards and regulatory compliance requirements.

Per altre informazioni, vedere Get started with SQL DB Data Discovery & Classification (Introduzione a Individuazione dati e classificazione dei database SQL).For more information, see Get started with SQL DB Data Discovery & Classification.

Controllare l'accessoControl access

Il database SQL protegge i dati limitando l'accesso al database usando regole del firewall, i meccanismi di autenticazione che richiedono agli utenti di dimostrare la propria identità e l'autorizzazione per i dati tramite le appartenenze basate sui ruoli e le autorizzazioni, oltre che tramite la sicurezza a livello di riga e la maschera dati dinamica.SQL Database secures your data by limiting access to your database using firewall rules, authentication mechanisms requiring users to prove their identity, and authorization to data through role-based memberships and permissions, as well as through row-level security and dynamic data masking. Per informazioni sull'uso delle funzionalità di controllo dell'accesso nel database SQL, vedere Controllo dell'accesso.For a discussion of the use of access control features in SQL Database, see Control access.

Importante

La gestione dei database e dei server logici in Azure è controllata dalle assegnazioni di ruolo dell'account del portale utenti.Managing databases and logical servers within Azure is controlled by your portal user account's role assignments. Per altre informazioni su questo articolo, vedere Controllo degli accessi in base al ruolo nel portale di Azure.For more information on this article, see Role-based access control in Azure portal.

Firewall e regole del firewallFirewall and firewall rules

Per proteggere i dati, il firewall impedisce qualsiasi accesso al server di database finché non vengono specificati i computer autorizzati usando le regole del firewall.To help protect your data, firewalls prevent all access to your database server until you specify which computers have permission using firewall rules. Il firewall concede l'accesso ai database in base all'indirizzo IP di origine di ogni richiesta.The firewall grants access to databases based on the originating IP address of each request.

AuthenticationAuthentication

Per autenticazione del database SQL si intende il modo in cui viene dimostrata la propria identità durante la connessione al database.SQL database authentication refers to how you prove your identity when connecting to the database. Il database SQL supporta due tipi di autenticazione:SQL Database supports two types of authentication:

  • Autenticazione SQL, che usa nome utente e password.SQL Authentication, which uses a username and password. Durante la creazione del server logico per il database, è stato specificato un account di accesso "amministratore del server" con un nome utente e una password.When you created the logical server for your database, you specified a "server admin" login with a username and password. Utilizzando queste credenziali, è possibile essere autenticati in qualsiasi database di tale server in qualità di proprietario del database o "dbo".Using these credentials, you can authenticate to any database on that server as the database owner, or "dbo."
  • Autenticazione di Azure Active Directory, che usa identità gestite da Azure Active Directory ed è supportata per domini gestiti e integrati.Azure Active Directory Authentication, which uses identities managed by Azure Active Directory and is supported for managed and integrated domains. Quando possibile, usare l'autenticazione di Active Directory (sicurezza integrata).Use Active Directory authentication (integrated security) whenever possible. Se si desidera utilizzare l'autenticazione di Azure Active Directory, è necessario creare un altro amministratore del server denominato "admin Azure AD," che è autorizzato ad amministrare utenti e gruppi di Azure AD.If you want to use Azure Active Directory Authentication, you must create another server admin called the "Azure AD admin," which is allowed to administer Azure AD users and groups. Questo amministratore può inoltre eseguire tutte le operazioni che un amministratore del server regolare può fare.This admin can also perform all operations that a regular server admin can. Vedere Connessione al Database SQL utilizzando l'autenticazione di Azure Active Directory per una procedura dettagliata di come creare un amministratore di Azure AD per abilitare l'autenticazione di Azure Active Directory.See Connecting to SQL Database By Using Azure Active Directory Authentication for a walkthrough of how to create an Azure AD admin to enable Azure Active Directory Authentication.

AuthorizationAuthorization

Per autorizzazione si intendono le operazioni che l'utente può eseguire in un database SQL di Azure, che sono controllate dalle appartenenze ai ruoli del database e dalle autorizzazioni a livello di oggetto dell'account utente.Authorization refers to what a user can do within an Azure SQL Database, and this is controlled by your user account's database role memberships and object-level permissions. Come procedura consigliata, è opportuno concedere agli utenti i privilegi minimi necessari.As a best practice, you should grant users the least privileges necessary. L'account di amministrazione del server a cui ci si sta connettendo è un membro del ruolo db_owner, che è autorizzato a eseguire qualsiasi operazione all'interno del database.The server admin account you are connecting with is a member of db_owner, which has authority to do anything within the database. Salvare questo account per la distribuzione degli aggiornamenti allo schema e altre operazioni di gestione.Save this account for deploying schema upgrades and other management operations. Utilizzare l'account "ApplicationUser" con autorizzazioni più limitate per la connessione dall'applicazione al database con i privilegi minimi richiesti dall'applicazione.Use the "ApplicationUser" account with more limited permissions to connect from your application to the database with the least privileges needed by your application.

Sicurezza a livello di rigaRow-level security

La sicurezza a livello di riga consente ai clienti di controllare l'accesso alle righe in una tabella di database in base alle caratteristiche dell'utente che esegue una query, ad esempio l'appartenenza a un gruppo o il contesto di esecuzione.Row-Level Security enables customers to control access to rows in a database table based on the characteristics of the user executing a query (e.g., group membership or execution context). Per altre informazioni, vedere Sicurezza a livello di riga.For more information, see Row-Level security.

Maschera dati dinamicaDynamic data masking

La funzione Maschera dati dinamica del database SQL limita l'esposizione dei dati sensibili, nascondendoli agli utenti senza privilegi.SQL Database dynamic data masking limits sensitive data exposure by masking it to non-privileged users. La maschera dati dinamica individua automaticamente dati potenzialmente sensibili nel database SQL di Azure e fornisce indicazioni pratiche per il mascheramento di questi campi, con un impatto minimo sul livello dell'applicazione.Dynamic data masking automatically discovers potentially sensitive data in Azure SQL Database and provides actionable recommendations to mask these fields, with minimal impact on the application layer. Questa funzionalità si basa sull'offuscamento dei dati sensibili nel set dei risultati di una query su campi designati del database, mentre i dati del database non subiscono modifiche.It works by obfuscating the sensitive data in the result set of a query over designated database fields, while the data in the database is not changed. Per altre informazioni, vedere Introduzione alla maschera dati dinamica del database SQL.For more information, see Get started with SQL Database dynamic data masking.

Monitoraggio proattivoProactive monitoring

Il database SQL protegge i dati fornendo funzionalità di controllo e di rilevamento delle minacce.SQL Database secures your data by providing auditing and threat detection capabilities.

ControlloAuditing

Il servizio di controllo del database SQL tiene traccia delle attività del database e consente di gestire la conformità alle normative, registrando gli eventi del database in un log di controllo nell'account di archiviazione di Azure.SQL Database Auditing tracks database activities and helps you to maintain regulatory compliance, by recording database events to an audit log in your Azure Storage account. Il servizio di controllo consente di conoscere le attività del database in corso e di analizzare ed esaminare l'attività cronologica per identificare potenziali minacce o uso improprio sospetto e violazioni della sicurezza.Auditing enables you to understand ongoing database activities, as well as analyze and investigate historical activity to identify potential threats or suspected abuse and security violations. Per altre informazioni, vedere Introduzione al controllo del database SQL.For additional information, see Get started with SQL Database Auditing.

Introduzione al rilevamento delle minacceThreat detection

Il rilevamento delle minacce è complementare al controllo perché offre un livello aggiuntivo di informazioni sulla sicurezza integrata nel servizio database SQL di Azure, che rileva tentativi insoliti e potenzialmente dannosi di accedere ai database o di sfruttarli.Threat Detection complements auditing, by providing an additional layer of security intelligence built into the Azure SQL Database service that detects unusual and potentially harmful attempts to access or exploit databases. L'utente viene avvisato di attività sospette, vulnerabilità potenziali e attacchi SQL injection, nonché di modelli anomali di accesso al database.You are alerted about suspicious activities, potential vulnerabilities and SQL injection attacks, as well as anomalous database access patterns. Gli avvisi di Rilevamento minacce sono disponibili nel Centro sicurezza di Azure, forniscono i dettagli delle attività sospette e raccomandano azioni per individuare e ridurre la minaccia.Threat Detection alerts can be viewed from Azure Security Center and provide details of suspicious activity and recommend action on how to investigate and mitigate the threat. La funzionalità Rilevamento delle minacce ha un costo di $15/server/meseThreat Detection costs $15/server/month. È gratuito per i primi 60 giorni.It is free for the first 60 days. Per altre informazioni, vedere l' Introduzione al rilevamento delle minacce nel database SQL.For more information, see Get started with SQL Database Threat Detection.

ConformitàCompliance

Oltre alle caratteristiche e alle funzionalità sopra descritte, che consentono all'applicazione di soddisfare vari requisiti di sicurezza, il database SQL di Azure è inoltre sottoposto a controlli regolari ed ha ottenuto la certificazione per diversi standard di conformità.In addition to the above features and functionality that can help your application meet various security requirements, Azure SQL Database also participates in regular audits and has been certified against a number of compliance standards. Per ulteriori informazioni, vedere il Centro protezione di Microsoft Azure, dove è possibile trovare l'elenco più recente di certificazioni di conformità del database SQL.For more information, see the Microsoft Azure Trust Center, where you can find the most current list of SQL Database compliance certifications.

Gestione della sicurezzaSecurity management

Il database SQL di Azure consente di gestire la sicurezza dei dati fornendo analisi di database e una dashboard di sicurezza centralizzata mediante Valutazione delle vulnerabilità di SQL.SQL Database helps you manage your data security by providing database scans and a centralized security dashboard using SQL Vulnerability Assessment.

Valutazione della vulnerabilità: Valutazione della vulnerabilità di SQL, attualmente in anteprima, è uno strumento semplice da configurare integrato nel database SQL di Azure che facilita l'individuazione, il monitoraggio e la risoluzione di potenziali vulnerabilità del database.Vulnerability Assessment: SQL Vulnerability Assessment (currently in preview) is an easy to configure tool built into Azure SQL Database that can help you discover, track, and remediate potential database vulnerabilities. Lo strumento esegue un'analisi delle vulnerabilità sul database e genera un report che offre visibilità sullo stato di sicurezza, incluse azioni implementabili per risolvere i problemi e migliorare la sicurezza del database.The assessment executes a vulnerability scan on your database, and generates a report that gives you visibility into your security state, including actionable steps to resolve security issues and enhance your database security. È possibile personalizzare il report di valutazione per l'ambiente, impostando una baseline accettabile per le configurazioni delle autorizzazioni e delle funzioni e le impostazioni del database.The assessment report can be customized for your environment, by setting an acceptable baseline for permission configurations, feature configurations, and database settings. Questo può essere utile per:This can help you to:

  • Soddisfare i requisiti di conformità che richiedono i report di scansione del database.Meet compliance requirements that require database scan reports.

  • Soddisfare gli standard di privacy.Meet data privacy standards.

  • Monitorare un ambiente dinamico del database in cui è difficile rilevare le modifiche.Monitor a dynamic database environment where changes are difficult to track.

Per altre informazioni, vedere Valutazione della vulnerabilità di SQL.For more information, see SQL Vulnerability Assessment.

Passaggi successiviNext steps