Introduzione al controllo di Istanza gestita di SQL di Azure
Si applica a: Istanza gestita di SQL di Azure SQL
Il controllo dell'Istanza gestita di SQL di Azure tiene traccia degli eventi del database e li registra in un log di controllo nell'account di archiviazione di Azure. Inoltre, il servizio di controllo:
- Consente di gestire la conformità alle normative, ottenere informazioni sull'attività del database e rilevare discrepanze e anomalie che possono indicare problemi aziendali o possibili violazioni della sicurezza.
- Supporta e facilita il rispetto degli standard di conformità, pur non garantendo la conformità. Per altre informazioni, visitare il Centro protezione di Azure di Microsoft, dove è possibile trovare l'elenco più aggiornato di certificazioni di conformità dell’istanza gestita di SQL.
Importante
I servizi di controllo per il database SQL di Azure, Azure Synapse e Istanza gestita di SQL di Azure sono ottimizzati per la disponibilità e le prestazioni. Nei periodi di attività molto intensa o un carico di rete elevato, Database SQL di Azure, Azure Synapse e Istanza gestita di SQL di Azure consentono il proseguimento delle operazioni e potrebbe non registrare alcuni eventi controllati.
Configurare il controllo per il server in Archiviazione di Azure
La sezione seguente descrive la configurazione del controllo per l'istanza gestita.
Vai al portale di Azure.
Creare un contenitore di Archiviazione di Azure in cui archiviare i log di controllo.
Passare all'account di archiviazione di Azure in cui si vogliono archiviare i log di controllo.
- Usare un account di archiviazione nella stessa area dell'istanza gestita per evitare operazioni di lettura e scrittura tra aree diverse.
- Se l'account di archiviazione si trova dietro una rete virtuale o un firewall, vedere Concedere l'accesso da una rete virtuale.
- Se si cambia il periodo di conservazione da 0 (conservazione illimitata) a qualsiasi altro valore, tenere presente che la conservazione verrà applicata solo ai log scritti dopo tale modifica (i log scritti durante il periodo in cui la conservazione è stata impostata su illimitata vengono conservati, anche dopo l'abilitazione della conservazione).
Nell'account di archiviazione passare a Panoramica e selezionare BLOB.
Nel menu in alto selezionare + Contenitore per creare un nuovo contenitore.
Specificare un Nome per il contenitore, impostare Livello di accesso pubblico su Privato e quindi selezionare OK.
Importante
I clienti che desiderano configurare un archivio log non modificabile per gli eventi di controllo a livello di server o di database devono seguire le istruzioni fornite da Archiviazione di Azure. (Assicurarsi di aver selezionato Consenti aggiunte aggiuntive quando si configura l'archiviazione BLOB non modificabile).
Dopo aver creato il contenitore, è possibile configurarlo come destinazione dei log di controllo in due modi: usando T-SQL oppure tramite l'interfaccia utente di SQL Server Management Studio (SSMS):
Configurare l'archiviazione BLOB per i log di controllo usando T-SQL:
Nell'elenco dei contenitori selezionare il contenitore appena creato e quindi selezionare Proprietà del contenitore.
Copiare l'URL del contenitore selezionando l'icona di copia e salvarlo (ad esempio, in Blocco note) per uso futuro. Il formato dell'URL del contenitore deve essere
https://<StorageName>.blob.core.windows.net/<ContainerName>
Generare un token di firma di accesso condiviso di Archiviazione di Azure per concedere all'account di archiviazione i diritti di accesso al controllo dell'istanza gestita:
Passare all'account di Archiviazione di Azure in cui è stato creato il contenitore nel passaggio precedente.
Fare clic su Firma di accesso condiviso nel menu Impostazioni di archiviazione.
Configurare SAS come segue:
Servizi consentiti: BLOB
Data di inizio: per evitare problemi correlati al fuso orario, usare la data del giorno precedente
Data di fine: scegliere la data di scadenza del token di firma di accesso condiviso
Nota
Rinnovare il token alla scadenza per evitare errori di controllo.
Selezionare Genera firma di accesso condiviso.
Il token di firma di accesso condiviso viene visualizzato nella parte inferiore. Copiare il token selezionando l'icona di copia e salvarlo (ad esempio, in Blocco note) per uso futuro.
Importante
Rimuovere il carattere punto interrogativo (
?
) dall'inizio del token.
Connettersi all'istanza gestita tramite SQL Server Management Studio o qualsiasi altro strumento supportato.
Eseguire l'istruzione T-SQL seguente per creare nuove credenziali usando l'URL del contenitore e il token di firma di accesso condiviso creati nei passaggi precedenti:
CREATE CREDENTIAL [<container_url>] WITH IDENTITY='SHARED ACCESS SIGNATURE', SECRET = '<SAS KEY>' GO
Eseguire l'istruzione T-SQL seguente per creare un nuovo controllo server. Scegliere un nome personalizzato per il controllo e usare l'URL del contenitore creato nei passaggi precedenti. Se non specificato diversamente, l'impostazione predefinita di
RETENTION_DAYS
è 0 (conservazione illimitata):CREATE SERVER AUDIT [<your_audit_name>] TO URL (PATH ='<container_url>', RETENTION_DAYS = <integer>); GO
Proseguire con la creazione di una specifica di controllo server o una specifica di controllo database.
Configurare l'archiviazione BLOB per i log di controllo tramite SQL Server Management Studio 18 o versioni successive:
Connettersi all'istanza gestita tramite l'interfaccia utente di SQL Server Management Studio.
Espandere il nodo radice di Esplora oggetti.
Espandere il nodo Sicurezza, fare clic con il pulsante destro del mouse sul nodo Controlli e scegliere Nuovo controllo:
Verificare che in Destinazione controllo sia selezionata l'opzione URL e fare clic su Sfoglia:
(Facoltativo) Accedere all'account di Azure:
Selezionare una sottoscrizione, un account di archiviazione e un contenitore BLOB dagli elenchi a discesa oppure creare un contenitore personalizzato selezionando Crea. Una volta terminato, selezionare OK:
Nella finestra di dialogo Crea controllo selezionare OK.
Nota
Quando si usa l'interfaccia utente di SQL Server Management Studio per creare il controllo, verrà creata automaticamente una credenziale per il contenitore con chiave di firma di accesso condiviso.
Dopo aver configurato il contenitore BLOB come destinazione dei log di controllo, creare e abilitare una specifica di controllo server o una specifica di controllo database come nel caso di SQL Server:
Guida di T-SQL per la creazione di specifiche di controllo server
Guida di T-SQL per la creazione di specifiche di controllo database
Abilitare il controllo server creato nel passaggio 3:
ALTER SERVER AUDIT [<your_audit_name>] WITH (STATE = ON); GO
Per informazioni aggiuntive:
- Controllo delle differenze tra Istanza gestita di SQL di Azure e un database in SQL Server
- CREATE SERVER AUDIT
- ALTER SERVER AUDIT
Controllo delle operazioni del supporto tecnico Microsoft
Il controllo delle operazioni di supporto tecnico Microsoft per Istanza gestita di SQL consente di controllare le operazioni dei tecnici del supporto Microsoft quando devono accedere al server durante una richiesta di supporto. L'uso di questa funzionalità, insieme al controllo, permette una maggiore trasparenza nella forza lavoro e il rilevamento delle anomalie, la visualizzazione delle tendenze e la prevenzione della perdita dei dati.
Per abilitare il controllo delle operazioni di supporto tecnico Microsoft, passare a Crea controllo in Sicurezza>Controllo nell'istanza gestita di SQL e selezionare Operazioni di supporto Microsoft.
Nota
È necessario creare un controllo server separato per il controllo delle operazioni Microsoft. Se si abilita questa casella di controllo per un controllo esistente, il controllo verrà sovrascritto e verranno sovrascritti solo le operazioni di supporto dei log.
Configurare il controllo per il server in Hub eventi o Log di Monitoraggio di Azure
I log di controllo provenienti da un'istanza gestita possono anche essere inviati ad Hub eventi di Azure o Log di Monitoraggio di Azure. Questa sezione illustra come configurarli:
All'interno del portale di Azure passare all'istanza gestita.
Selezionare Impostazioni di diagnostica.
Selezionare Attiva diagnostica. Se la diagnostica è già abilitata verrà invece visualizzata l'opzione + Aggiungi impostazione di diagnostica.
Selezionare SQLSecurityAuditEvents nell'elenco dei log.
Se si configurano le operazioni di supporto Microsoft, selezionare Log di controllo delle operazioni DevOps nell'elenco dei log.
Selezionare una destinazione per gli eventi di controllo: Hub eventi, Log di Monitoraggio di Azure o entrambi. Configurare per ogni destinazione i parametri obbligatori (ad esempio, area di lavoro Log Analytics).
Seleziona Salva.
Connettersi all'istanza gestita usando SQL Server Management Studio (SSMS) o qualsiasi altro client supportato.
Eseguire l'istruzione T-SQL seguente per creare un controllo del server:
CREATE SERVER AUDIT [<your_audit_name>] TO EXTERNAL_MONITOR; GO
Creare e abilitare una specifica di controllo server o di controllo database come si farebbe per SQL Server:
Abilitare il controllo server creato nel passaggio 8:
ALTER SERVER AUDIT [<your_audit_name>] WITH (STATE = ON); GO
Configurare il controllo con T-SQL
-- Create audit without OPERATOR_AUDIT - Will audit standard SQL Audit events
USE [master];
GO
CREATE SERVER AUDIT testingauditnodevops TO EXTERNAL_MONITOR;
GO
CREATE SERVER AUDIT SPECIFICATION testingaudit_Specification_nodevops
FOR SERVER AUDIT testingauditnodevops ADD (SUCCESSFUL_LOGIN_GROUP),
ADD (BATCH_COMPLETED_GROUP),
ADD (FAILED_LOGIN_GROUP)
WITH (STATE = ON);
GO
ALTER SERVER AUDIT testingauditnodevops
WITH (STATE = ON);
GO
-- Create separate audit without OPERATOR_AUDIT ON - Will audit Microsoft Support Operations
USE [master]
CREATE SERVER AUDIT testingauditdevops TO EXTERNAL_MONITOR
WITH (OPERATOR_AUDIT = ON);
GO
CREATE SERVER AUDIT SPECIFICATION testingaudit_Specification_devops
FOR SERVER AUDIT testingauditdevops ADD (SUCCESSFUL_LOGIN_GROUP),
ADD (BATCH_COMPLETED_GROUP),
ADD (FAILED_LOGIN_GROUP)
WITH (STATE = ON);
GO
ALTER SERVER AUDIT testingauditdevops
WITH (STATE = ON);
GO
Utilizzo di log di controllo
Utilizzo dei log archiviati in Archiviazione di Azure
Per visualizzare i log di controllo dei BLOB sono disponibili diversi metodi.
Usare la funzione di sistema
sys.fn_get_audit_file
(T-SQL) per restituire i dati dei log di controllo in formato tabulare. Per altre informazioni su questa funzione, vedere la documentazione su sys.fn_get_audit_file.È possibile esplorare i log di controllo con uno strumento come Azure Storage Explorer. In Archiviazione di Azure i log di controllo vengono salvati come raccolta di file BLOB in un contenitore appositamente definito per l'archiviazione di questi log. Per altri dettagli sulla gerarchia della cartella di archiviazione, le convenzioni di denominazione e il formato dei log, vedere le informazioni di riferimento sul formato dei log del controllo BLOB.
Per l'elenco completo dei metodi di consumo del log di controllo, fare riferimento a Introduzione al controllo del database SQL di Azure.
Utilizzo dei log archiviati in Hub eventi
Per utilizzare i dati dei log di controllo da Hub eventi, è necessario configurare un flusso per utilizzare gli eventi e scriverli in una destinazione. Per altre informazioni, vedere la documentazione di Hub eventi di Azure.
Usare e analizzare i log archiviati in Log di Monitoraggio di Azure
Se i log di controllo vengono scritti in Log di Monitoraggio di Azure, saranno disponibili nell'area di lavoro Log Analytics, in cui è possibile eseguire ricerche avanzate sui dati di controllo. Come punto di partenza passare all'area di lavoro Log Analytics. Nella sezione Generale selezionare Log e immettere una query di base, ad esempio: search "SQLSecurityAuditEvents"
per visualizzare i log di controllo.
Log di Monitoraggio di Azure consente di ottenere informazioni operative in tempo reale tramite funzionalità di ricerca integrate e dashboard personalizzati per analizzare rapidamente milioni di record in tutti i carichi di lavoro e i server. Per ulteriori informazioni sul linguaggio di ricerca e i comandi dei log di Monitoraggio di Azure, vedere Informazioni di riferimento sulla ricerca nei log di Monitoraggio di Azure.
Nota
Questo articolo è stato aggiornato di recente in modo da usare il termine log di Monitoraggio di Azure anziché Log Analytics. I dati di log vengono comunque archiviati in un'area di lavoro Log Analytics e vengano ancora raccolti e analizzati dallo stesso servizio Log Analytics. Si sta procedendo a un aggiornamento della terminologia per riflettere meglio il ruolo dei log in Monitoraggio di Azure. Per informazioni dettagliate, vedere Modifiche della terminologia di Monitoraggio di Azure.
Controllo delle differenze tra i database in Istanza gestita di SQL di Azure e i database in SQL Server
Le principali differenze tra il controllo nei database nel database in Istanza gestita di SQL di Azure e quelli in SQL Server sono le seguenti:
- Con Istanza gestita di SQL di Azure, il controllo opera a livello di server e archivia i file
.xel
in Archiviazione BLOB di Azure. - In SQL Server, il controllo viene eseguito a livello del server, ma archivia gli eventi nei log eventi del file system o di Windows.
Il controllo XEvent nell'istanza gestita supporta le destinazioni di Archivio BLOB di Azure. I log di file e di Windows non sono supportati.
Le principali differenze nella sintassi CREATE AUDIT
per il controllo in Archivio BLOB di Azure sono le seguenti:
- È disponibile una nuova sintassi
TO URL
che consente di specificare l'URL del contenitore di archiviazione BLOB di Azure in cui vengono inseriti i file.xel
. - Viene fornita una nuova sintassi
TO EXTERNAL MONITOR
per abilitare i target Hub eventi e Log di Monitoraggio di Azure. - La sintassi
TO FILE
non è supportata perché Istanza gestita di SQL di Azure non può accedere alle condivisioni file di Windows. - L'opzione Shutdown non è supportata.
- Un valore di
queue_delay
uguale a 0 non è supportato.
Passaggi successivi
- Per l'elenco completo dei metodi di consumo del log di controllo, fare riferimento a Introduzione al controllo del database SQL di Azure.