Nesta página, descrevemos a auditoria de banco de dados no Cloud SQL usando a funcionalidade da auditoria do SQL Server.
Visão geral
Os recursos de auditoria do SQL Server incluem o seguinte no Cloud SQL:
- Como criar especificações de auditoria do servidor
- Acompanhamento e registro de eventos no nível do servidor e do banco de dados
Para mais informações sobre os recursos de auditoria do SQL Server, consulte Auditoria do SQL Server (Mecanismo de banco de dados).
Antes de começar
Antes de ativar a auditoria de banco de dados, leia os pré-requisitos desta seção.
Bucket do Cloud Storage para arquivos de auditoria
Os arquivos de auditoria (registros de auditoria) são enviados para um local do bucket do Cloud Storage. Assim, talvez seja necessário criar um bucket de propriedade da sua conta do Google Cloud.
Se preferir, use o local do bucket de outra conta. Quando você ativa a auditoria, se tiver as permissões necessárias, o papel roles/storage.objectAdmin
será concedida automaticamente para fazer upload da auditoria. Arquivos para o local do bucket da
conta de serviço especificada. Se
você não tiver as permissões necessárias, conceda-as à
conta de serviço mais tarde.
Usuário válido para ativação da auditoria
Para ativar a auditoria e criar especificações de auditoria, é necessário que o usuário padrão sqlserver
esteja disponível. Quando você criou uma instância do Cloud SQL para
SQL Server, o usuário sqlserver
padrão foi criado para você.
Como ativar a auditoria
Quando você ativa a auditoria, um local do Cloud Storage é necessário. Os itens a seguir são opcionais:
- O período de armazenamento de registros na instância
- Intervalo de upload (frequência de upload)
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome de instância flights.
- Clique em Editar.
- Na seção Personalizar sua instância, clique em Sinalizações e parâmetros.
- Marque a caixa de seleção ao lado de Ativar auditoria do SQL Server.
- Especifique um bucket do Cloud Storage como o local para onde os arquivos de auditoria são enviados.
- Clique em Advanced Options.
- Também é possível especificar um número de dias para a retenção do registro (de 1 a 7 dias, sete dias é o padrão).
- Também é possível especificar a frequência com que os registros serão enviados (arquivos de auditoria) em minutos (1 a 720 minutos. O padrão é 10 minutos).
- Clique em Salvar para aplicar as alterações.
gcloud
O comando a seguir ativa a auditoria:
gcloud sql instances patch INSTANCE_NAME --audit-bucket-path=gs://my-bucket --audit-retention-interval=24h --audit-upload-interval=10m
A tabela a seguir resume os parâmetros de gcloud
dessa operação:
Parâmetro | Descrição | Valores permitidos | Valor padrão |
--audit-bucket-path |
Obrigatório. O local, como um bucket do Cloud Storage, para onde são enviados os arquivos de auditoria. | Será vazio se a auditoria for desativada. Caso contrário, um caminho que começa com: gs:// |
Será vazio porque, por padrão, a auditoria está desativada. |
--audit-retention-interval |
Opcional. O número de dias para a retenção do registro de auditoria no disco. | 1 a 7 dias. Apenas dias são permitidos. | 7 dias. |
--audit-upload-interval |
Opcional. Frequência do upload dos registros de auditoria (arquivos de auditoria). | 1 a 720 minutos. | 10 minutos |
REST v1
Com a API REST, é possível ativar a auditoria de uma instância. Conforme mostrado no protótipo de solicitação a seguir, é possível especificar um bucket do Cloud Storage, um número de dias para a retenção de arquivos de auditoria e uma frequência para o upload de arquivos de auditoria. Somente o local do bucket é obrigatório. Para mais informações, consulte SqlServerAuditoriaConfig:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ "bucket":"gs://mybucket", "retentionInterval":"24h", "uploadInterval":"10m" } } }
REST v1beta4
Com a API REST, é possível ativar a auditoria de uma instância. Conforme mostrado no protótipo de solicitação a seguir, é possível especificar um bucket do Cloud Storage, um número de dias para a retenção de arquivos de auditoria e uma frequência para o upload de arquivos de auditoria. Somente o local do bucket é obrigatório. Para mais informações, consulte SqlServerAuditoriaConfig:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ "bucket":"gs://mybucket", "retentionInterval":"24h", "uploadInterval":"10m" } } }
Como desativar a auditoria
Esta seção contém as opções para desativar a auditoria. Quando você desativa a auditoria, todos os arquivos de auditoria, inclusive os que ainda não foram enviados, são excluídos da instância. Além disso, todas as auditorias de servidor são desativadas e precisam ser reativadas se a auditoria for retomada. Os registros de auditoria que foram enviados para o bucket do Cloud Storage podem permanecer, dependendo das configurações de retenção do bucket.
Veja a seguir as opções para desativar a auditoria.
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome de instância flights.
- Clique em Editar.
- Na seção Personalizar sua instância, clique em Sinalizações e parâmetros.
- Desmarque a caixa de seleção ao lado de Ativar auditoria do SQL Server.
- Clique em Salvar para aplicar as alterações.
gcloud
O comando a seguir, que omite um valor do parâmetro --audit-bucket-path
, desativa a auditoria:
gcloud sql instances patch INSTANCE_NAME --audit-bucket-path=
REST v1
O seguinte, que omite os campos do objeto sqlServerAuditConfig
, é um protótipo de solicitação para desativar a auditoria:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ } } }
REST v1beta4
O seguinte, que omite os campos do objeto sqlServerAuditConfig
, é um protótipo de solicitação para desativar a auditoria:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ } } }
Upload automático de arquivos de auditoria
Depois de ativar a auditoria, os arquivos de auditoria gerados são enviados automaticamente para o bucket especificado do Cloud Storage.
Os arquivos de auditoria gerados também são armazenados com a instância até que o período de retenção (intervalo) configurado expire. Após esse período, os arquivos de auditoria são excluídos permanentemente, mesmo aqueles que não puderam ser enviados.
Como criar auditorias de servidor
Depois de ativar a auditoria, o usuário padrão sqlserver
terá permissões para
criar, alterar e excluir auditorias do servidor.
Use o comando CREATE SERVER AUDIT para definir novas auditorias do servidor. Também é possível usar a interface do usuário do SQL Server Management Studio (SSMS) para criar auditorias de servidor.
As seguintes categorias de parâmetros são aplicadas a todas as auditorias de servidor:
Categoria do parâmetro | Valores permitidos |
Falha no registro de auditoria | Continuar ou falhar |
Destino da auditoria | Arquivo |
Caminho | /var/opt/mssql/audit
|
Tamanhos máximos dos arquivos | 2 a 50 MB |
Máximo de arquivos rollover | Precisa ser: não configurado |
Nº máximo de arquivos | Precisa ser: não configurado |
Reservar espaço em disco | Desativada |
Ler auditorias
Como ler auditorias de uma instância
Para recuperar os dados de um arquivo de auditoria criado por uma auditoria de servidor, use
o seguinte procedimento armazenado: msdb.dbo.gcloudsql_fn_get_audit_file
. O
procedimento msdb.dbo.gcloudsql_fn_get_audit_file
aceita os mesmos
parâmetros da função sys.fn_get_audit_file
.
Assim, para informações sobre como usar esse procedimento armazenado, consulte
sys.fn_get_audit_file
.
Veja um exemplo de como usar o procedimento msdb.dbo.gcloudsql_fn_get_audit_file
para
recuperar dados de auditoria:
SELECT event_time, statement FROM msdb.dbo.gcloudsql_fn_get_audit_file('/var/opt/mssql/audit/*', NULL, NULL) WHERE statement LIKE '%INSERT%'
Como ler auditorias de um bucket
Para ler auditorias de um bucket do Cloud Storage, faça o download dos arquivos do bucket para uma instância do SQL Server. A instância do SQL Server pode ser:
- Uma instância do Windows do Compute Engine
- Uma instância do Linux no Compute Engine
- Outro tipo de instância que executa o SQL Server.
Os arquivos de auditoria do bucket precisam ser transferidos para um local acessível a essa instância, como o disco local. Em seguida, para retornar informações dos arquivos de auditoria, execute a função sys.fn_get_audit_file
usando um membro do papel de servidor fixo serveradmin. Por exemplo, em uma instância do Windows, se você tiver transferido arquivos de auditoria para D:\Audit
, será possível usar um comando semelhante ao seguinte:
SELECT event_time, statement FROM sys.fn_get_audit_file('D:\Audit\*.*', NULL, NULL) WHERE statement LIKE '%INSERT%'
Como monitorar métricas
É possível monitorar operações relacionadas a auditorias como parte das métricas do Cloud SQL, disponíveis no Metrics Explorer:
- database/sqlserver/audits_upload_count. Essa métrica indica o total de tentativas de upload de arquivos de auditoria para tentativas bem-sucedidas e com falha. Verifique essa métrica para monitorar se os uploads foram concluídos.
- database/sqlserver/audits_size. Essa métrica indica quanto espaço do disco é usado pelos arquivos de auditoria armazenados na instância no momento de uma medição. Essa métrica fornece o tamanho total dos arquivos de auditoria na instância em bytes.
Práticas recomendadas
- Para evitar a transferência de arquivos grandes entre regiões, considere o seguinte:
- Criar buckets multirregionais do Cloud Storage ou
- Como configurar o bucket de destino do Cloud Storage na mesma região da instância
- Antes de usar a funcionalidade de auditoria do SQL Server, considere ativar os aumentos automáticos de armazenamento. Os arquivos de auditoria, dependendo do tamanho total e dos intervalos de retenção, talvez precisem de espaço em disco significativo.
- Depois de ativar a auditoria, verifique se a instância pode fazer upload de arquivos de auditoria para o bucket do Cloud Storage. Se o solicitante que configurou a auditoria não tiver as permissões necessárias para fazer upload de arquivos no bucket do Cloud Storage, as permissões não serão concedidas automaticamente.
- Configure uma política de alertas baseada em métrica para receber notificações sobre falhas de tentativas de upload e o uso excessivo do disco.
- Para evitar a retenção de muitos arquivos de auditoria por muito tempo, configure uma política de retenção de dados para o bucket do Cloud Storage.