Log de auditoria no Banco de Dados do Azure para PostgreSQL - Servidor Único

APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Único

Importante

O Banco de Dados do Azure para PostgreSQL - Servidor Único está no caminho da desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único PostgreSQL?.

O log de auditoria de atividades de banco de dados no Banco de Dados do Azure para PostgreSQL - Servidor Único está disponível por meio da extensão de Auditoria do PostgreSQL, pgAudit. A extensão pgAudit fornece registro detalhado de auditoria de sessão e objeto.

Nota

A extensão pgAudit está em pré-visualização na Base de Dados do Azure para PostgreSQL. Ele pode ser ativado apenas em servidores de uso geral e otimizados para memória.

Se você quiser logs no nível de recursos do Azure para operações como computação e dimensionamento de armazenamento, consulte Visão geral dos logs da plataforma Azure.

Considerações sobre o uso

Por padrão, as instruções de log pgAudit são emitidas junto com suas instruções de log regulares usando o recurso de log padrão do Postgres. No Banco de Dados do Azure para PostgreSQL, esses arquivos de .log podem ser baixados por meio do portal do Azure ou da CLI do Azure. O armazenamento máximo para a coleção de arquivos é de 1 GB. Cada ficheiro fica disponível por um período máximo de sete dias. O padrão é três dias. Este serviço é uma opção de armazenamento de curto prazo.

Como alternativa, você pode configurar todos os logs a serem enviados para o repositório de Logs do Azure Monitor para análises posteriores no Log Analytics. Se você habilitar o log de recursos do Monitor, seus logs serão enviados automaticamente no formato JSON para o Armazenamento do Azure, Hubs de Eventos do Azure ou Logs do Monitor, dependendo da sua escolha.

Habilitar o pgAudit gera um grande volume de registro em log em um servidor, o que afeta o desempenho e o armazenamento de logs. Recomendamos que você use o Monitor Logs, que oferece opções de armazenamento de longo prazo e recursos de análise e alerta. Desative o registro em log padrão para reduzir o impacto no desempenho do registro em log adicional:

  1. Defina o parâmetro logging_collector como OFF.
  2. Reinicie o servidor para aplicar esta alteração.

Para saber como configurar o log para Armazenamento, Hubs de Eventos ou Logs de Monitor, consulte a seção de logs de recursos de Logs no Banco de Dados do Azure para PostgreSQL - Servidor Único.

Instalar o pgAudit

Para instalar o pgAudit, você precisa incluí-lo nas bibliotecas compartilhadas pré-carregadas do servidor. Uma alteração no parâmetro Postgres shared_preload_libraries requer uma reinicialização do servidor para entrar em vigor. Você pode alterar parâmetros usando o portal, a CLI ou a API REST.

Para utilizar o portal:

  1. Selecione o servidor da Base de Dados do Azure para PostgreSQL.

  2. À esquerda, em Configurações, selecione Parâmetros do servidor.

  3. Pesquise shared_preload_libraries.

  4. Selecione PGAUDIT.

    Captura de tela que mostra o Banco de Dados do Azure para PostgreSQL habilitando shared_preload_libraries para PGAUDIT.

  5. Reinicie o servidor para aplicar a alteração.

  6. Conecte-se ao seu servidor usando um cliente como o psql e habilite a extensão pgAudit:

    CREATE EXTENSION pgaudit;
    

Gorjeta

Se vir um erro, confirme que reiniciou o servidor depois de guardar shared_preload_librarieso .

Configurações do pgAudit

Usando pgAudit, você pode configurar o log de auditoria de sessão ou objeto. O log de auditoria de sessão emite logs detalhados de instruções executadas. O log de auditoria de objetos tem o escopo da auditoria para relações específicas. Você pode optar por configurar um ou ambos os tipos de registro.

Nota

As configurações do pgAudit são especificadas globalmente e não podem ser especificadas em um banco de dados ou nível de função.

Depois de instalar o pgAudit, você pode configurar seus parâmetros para iniciar o registro.

Para configurar o pgAudit, no portal:

  1. Selecione o servidor da Base de Dados do Azure para PostgreSQL.

  2. À esquerda, em Configurações, selecione Parâmetros do servidor.

  3. Procure os parâmetros pgaudit .

  4. Selecione os parâmetros de configuração apropriados para editar. Por exemplo, para iniciar o registro, defina pgaudit.log como WRITE.

    Captura de tela que mostra o Banco de Dados do Azure para PostgreSQL configurando o log com pgAudit.

  5. Selecione Guardar para guardar as alterações.

A documentação do pgAudit fornece a definição de cada parâmetro. Teste os parâmetros primeiro e confirme se você está obtendo o comportamento esperado. Por exemplo:

  • Quando a configuração pgaudit.log_client está ativada, ela redireciona os logs para um processo de cliente como psql em vez de ser gravada em um arquivo. Em geral, deixe essa configuração desativada.
  • O parâmetro pgaudit.log_level só é ativado quando o pgaudit.log_client está ativado.

Nota

No Banco de Dados do Azure para PostgreSQL, pgaudit.log não pode ser definido usando um atalho de sinal de subtração (-), conforme descrito na documentação do pgAudit. Todas as classes de instrução necessárias, como READ e WRITE, devem ser especificadas individualmente.

Formato do registo de auditoria

Cada entrada de auditoria é indicada perto AUDIT: do início da linha de log. O formato do restante da entrada é detalhado na documentação do pgAudit.

Se você precisar de outros campos para satisfazer seus requisitos de auditoria, use o parâmetro Postgres log_line_prefix. A string log_line_prefix é saída no início de cada linha de log do Postgres. Por exemplo, a configuração a seguir log_line_prefix fornece carimbo de data/hora, nome de usuário, nome do banco de dados e ID do processo:

t=%m u=%u db=%d pid=[%p]:

Para saber mais sobre log_line_prefixo , consulte a documentação do PostgreSQL.

Começar agora

Para começar rapidamente, defina pgaudit.log como GRAVAÇÃO. Em seguida, abra os logs para revisar a saída.

Ver registos de auditoria

Se você estiver usando arquivos .log, seus logs de auditoria serão incluídos no mesmo arquivo que os logs de erro do PostgreSQL. Você pode baixar arquivos de log do portal ou da CLI.

Se estiver a utilizar o registo de recursos do Azure, a forma como acede aos registos depende do ponto de extremidade escolhido. Para Armazenamento, consulte Logs de recursos do Azure. Para Hubs de Eventos, consulte também Logs de recursos do Azure.

Para Monitor Logs, os logs são enviados para o espaço de trabalho selecionado. Os logs do Postgres usam o AzureDiagnostics modo de coleta, para que possam ser consultados a AzureDiagnostics partir da tabela, conforme mostrado. Para saber mais sobre consultas e alertas, consulte Registrar consultas no Azure Monitor.

Use esta consulta para começar. Você pode configurar alertas com base em consultas.

Procure todos os logs do Postgres para um determinado servidor no último dia:

AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where TimeGenerated > ago(1d) 
| where Message contains "AUDIT:"

Próximos passos