Questa pagina descrive il controllo del database in Cloud SQL utilizzando la funzionalità di SQL Server Audit.
Panoramica
In Cloud SQL, le funzionalità di controllo di SQL Server includono quanto segue:
- Creazione di specifiche di controllo del server
- Monitoraggio e logging di eventi a livello di server e database
Per ulteriori informazioni sulle funzionalità di SQL Server Audit, vedi Controllo SQL Server (Motore del database).
Prima di iniziare
Prima di abilitare il controllo del database, rivedi i prerequisiti in questa sezione.
Bucket Cloud Storage per i file di controllo
I file di controllo (audit log) vengono caricati nella località di un bucket Cloud Storage. Pertanto, potresti dover crea un bucket di proprietà dal tuo account Google Cloud.
In alternativa, puoi utilizzare una posizione del bucket di proprietà di un altro account. Quando
attivi il controllo, se disponi delle autorizzazioni necessarie,
il roles/storage.objectAdmin
ruolo
viene concesso automaticamente per il caricamento dei file di controllo nella posizione del bucket del
account di servizio specificato. Se
non si dispone delle autorizzazioni necessarie, è necessario concederle
di account di servizio in un secondo momento.
Utente valido per l'attivazione del controllo
Per attivare il controllo e creare specifiche di controllo, deve essere disponibile l'utente sqlserver
predefinito. Quando hai creato un'istanza Cloud SQL per SQL Server, è stato creato per te l'utente predefinito sqlserver
.
Attivazione del controllo
Quando abiliti il controllo, è necessaria una località di Cloud Storage. I seguenti elementi sono facoltativi:
- Il periodo di conservazione dei log nell'istanza
- L'intervallo di caricamento (frequenza di caricamento)
Console
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Modifica.
- Nella sezione Personalizza la tua istanza, fai clic su Flag e parametri.
- Seleziona la casella di controllo accanto ad Abilita controllo SQL Server.
- Specifica un bucket Cloud Storage come località in cui vengono archiviati i file di controllo caricato.
- Fai clic su Opzioni avanzate.
- Se vuoi, specifica un numero di giorni per la conservazione dei log (da 1 a 7 giorni; 7 giorni è il valore predefinito).
- Se vuoi, specifica la frequenza di caricamento dei log (file di controllo) in minuti (da 1 a 720 minuti; 10 minuti è l'impostazione predefinita).
- Fai clic su Salva per applicare le modifiche.
gcloud
Il comando seguente abilita il controllo:
gcloud sql instances patch INSTANCE_NAME --audit-bucket-path=gs://my-bucket --audit-retention-interval=24h --audit-upload-interval=10m
La seguente tabella riassume i parametri gcloud
di questa operazione:
Parametro | Descrizione | Valori consentiti | Valore predefinito |
--audit-bucket-path |
Obbligatorio. La posizione, sotto forma di bucket Cloud Storage, in cui vengono caricati i file di controllo. | Vuoto se il controllo è disabilitato. In caso contrario, un percorso del bucket che inizia con: gs:// |
Vuoto perché l'audit è disattivato per impostazione predefinita. |
--audit-retention-interval |
Facoltativo. Il numero di giorni per la conservazione dei log di controllo sul disco. | Da 1 a 7 giorni. Sono consentiti solo giorni. | 7 giorni. |
--audit-upload-interval |
Facoltativo. La frequenza di caricamento dei log di controllo (file di controllo). | 1-720 minuti. | 10 minuti. |
REST v1
Utilizzando l'API REST, puoi abilitare il controllo per un'istanza. Come mostrato in dopo aver richiesto un prototipo, puoi specificare un bucket Cloud Storage, un di giorni per la conservazione dei file di controllo e una frequenza di caricamento . È richiesta solo la località del bucket. Per ulteriori informazioni, consulta SqlServerAuditConfig:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ "bucket":"gs://mybucket", "retentionInterval":"24h", "uploadInterval":"10m" } } }
REST v1beta4
Utilizzando l'API REST, puoi attivare il controllo per un'istanza. Come mostrato in dopo aver richiesto un prototipo, puoi specificare un bucket Cloud Storage, un di giorni per la conservazione dei file di controllo e una frequenza di caricamento . È richiesta solo la località del bucket. Per ulteriori informazioni, consulta SqlServerAuditConfig:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ "bucket":"gs://mybucket", "retentionInterval":"24h", "uploadInterval":"10m" } } }
Disabilitazione dei controlli
Questa sezione contiene le opzioni per disattivare il controllo. Quando disattivi il controllo, tutti i file di controllo, inclusi quelli non ancora caricati, vengono eliminati dall'istanza. Inoltre, tutti i controlli del server sono disabilitati e devono essere riattivati se il controllo deve riprendere. Gli audit log che sono stati caricati Il bucket Cloud Storage potrebbe rimanere, a seconda delle impostazioni di conservazione per il di sincronizzare la directory di una VM con un bucket.
Di seguito sono riportate le opzioni per disattivare i controlli.
Console
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Modifica.
- Nella sezione Personalizza la tua istanza, fai clic su Flag e parametri.
- Deseleziona la casella di controllo accanto ad Abilita l'audit di SQL Server.
- Fai clic su Salva per applicare le modifiche.
gcloud
Il comando seguente, che omette un valore per l'attributo
Parametro --audit-bucket-path
, disattiva il controllo:
gcloud sql instances patch INSTANCE_NAME --audit-bucket-path=
REST v1
Di seguito, che omette i campi della sezione
Oggetto sqlServerAuditConfig
, è un prototipo di richiesta per la disattivazione
revisione contabile:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ } } }
REST v1beta4
Di seguito è riportato un prototipo di richiesta per la disattivazione del controllo, che omette i campi dell'oggetto sqlServerAuditConfig
:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ } } }
Caricamento automatico dei file di controllo
Dopo aver attivato il controllo, i file di controllo generati vengono caricati automaticamente al bucket Cloud Storage specificato.
Anche i file di controllo generati vengono archiviati con l'istanza finché il periodo di conservazione (intervallo) scade. Trascorso questo periodo, i file di controllo vengono eliminati in modo definitivo, anche i file che non è stato possibile caricare.
Creazione di controlli del server in corso...
Dopo aver attivato il controllo, l'utente sqlserver
predefinito ha le autorizzazioni per creare, modificare e eliminare i controlli del server.
Utilizza il comando CREATE SERVER AUDIT per definire nuovi controlli del server. Puoi anche utilizzare l'interfaccia utente SQL Server Management Studio (SSMS) per creare controlli del server.
Per tutti i controlli del server vengono applicate le seguenti categorie di parametri:
Categoria del parametro | Valori consentiti |
In caso di errore dell'audit log | Continuare o interrompere |
Destinazione audit | File |
Percorso | /var/opt/mssql/audit
|
Massima dimensione del file | 2-50 MB |
File di rollover massimi | Deve essere: non configurato |
File massimi | Deve essere: non configurato |
Riservare spazio su disco | Off |
Controlli di lettura
Lettura dei controlli da un'istanza
Per recuperare i dati da un file di controllo creato da un controllo del server, puoi utilizzare
la seguente stored procedure: msdb.dbo.gcloudsql_fn_get_audit_file
. La procedura msdb.dbo.gcloudsql_fn_get_audit_file
accetta gli stessi parametri della funzione sys.fn_get_audit_file
.
Pertanto, per informazioni sull'utilizzo di questa stored procedure, consulta
sys.fn_get_audit_file
.
Ecco un esempio di utilizzo della procedura msdb.dbo.gcloudsql_fn_get_audit_file
per
recupera i dati di controllo:
SELECT event_time, statement FROM msdb.dbo.gcloudsql_fn_get_audit_file('/var/opt/mssql/audit/*', NULL, NULL) WHERE statement LIKE '%INSERT%'
Lettura degli audit da un bucket
Per leggere gli audit da un bucket Cloud Storage, puoi scaricare i file dal a un'istanza SQL Server. L'istanza SQL Server potrebbe essere:
- Un'istanza Windows di Compute Engine
- Un'istanza Linux di Compute Engine
- Un altro tipo di istanza su cui è in esecuzione SQL Server
I file di controllo del bucket devono essere trasferiti in una posizione accessibile a quell'istanza, ad esempio il suo disco locale. Poi, per restituire le informazioni dai file di controllo, esegui la funzione sys.fn_get_audit_file
utilizzando un membro del ruolo del server fisso serveradmin. Ad esempio, da
un'istanza Windows, se hai trasferito i file di controllo in D:\Audit
,
potresti usare un comando simile al seguente:
SELECT event_time, statement FROM sys.fn_get_audit_file('D:\Audit\*.*', NULL, NULL) WHERE statement LIKE '%INSERT%'
Monitoraggio delle metriche
Puoi monitorare le operazioni relative all'audit nell'ambito Metriche Cloud SQL, disponibile tramite Esplora metriche:
- database/sqlserver/audits_upload_count. Questa metrica indica il totale dei tentativi di caricamento dei file di controllo, per i tentativi riusciti e non riusciti. Controlla questa metrica per verificare se i caricamenti sono riusciti.
- database/sqlserver/audits_size. Questa metrica indica la quantità di spazio su disco utilizzata dai file di controllo archiviati nell'istanza al momento di una misurazione. Questa metrica fornisce le dimensioni totali dei file di controllo sull'istanza, in byte.
Best practice
- Per evitare di trasferire file di grandi dimensioni tra regioni, considera quanto segue:
- Creazione di bucket Cloud Storage multiregionali oppure
- Configurazione del bucket Cloud Storage di destinazione nella stessa regione di l'istanza
- Prima di utilizzare la funzionalità di controllo di SQL Server, considera le abilitando gli aumenti automatici dello spazio di archiviazione. Controllare i file, a seconda delle dimensioni totali e degli intervalli di conservazione, potrebbero richiedere molto spazio su disco.
- Dopo aver attivato il controllo, verifica che l'istanza possa caricare i file di controllo nel tuo bucket Cloud Storage. Se il richiedente che ha configurato il controllo non disponeva delle autorizzazioni necessarie per caricare file nel bucket Cloud Storage, le autorizzazioni non vengono concesse automaticamente.
- Configura un criterio di avviso basato su metriche per ricevere notifiche sui tentativi di caricamento non riusciti e sull'utilizzo eccessivo del disco.
- Per evitare di conservare troppi file di controllo per troppo tempo, imposta un valore criterio di conservazione per il bucket Cloud Storage.