Criar uma especificação de auditoria de banco de dados e de servidor

Aplica-se a:SQL Server

Este artigo descreve como criar uma auditoria de servidor e uma especificação de auditoria de banco de dados no SQL Server usando o SQL Server Management Studio ou o Transact-SQL.

Auditar uma instância do SQL Server ou um banco de dados do SQL Server envolve controlar e registrar em log os eventos que ocorrem no sistema. O objeto de Auditoria do SQL Server coleta uma instância única de ações no nível do servidor ou do banco de dados e grupos de ações a serem monitoradas. A auditoria está no nível de instância do SQL Server. Você pode ter várias auditorias por instância do SQL Server. O objeto Especificação de Auditoria de Banco de Dados pertence a uma auditoria. É possível criar uma especificação da auditoria de banco de dados por banco de dados do SQL Server por auditoria. Para obter mais informações, confira Auditoria do SQL Server (Mecanismo de Banco de Dados).

Antes de começar

Limitações e restrições

As especificações de auditoria de banco de dados são objetos não protegidos que residem em um determinado banco de dados. Quando uma especificação de auditoria de banco de dados é criada, ela fica em um estado desabilitado.

Quando estiver criando ou modificando uma especificação de auditoria de banco de dados em um banco de dados de usuário, não inclua ações de auditoria em objetos do escopo de servidor, como as exibições do sistema. Se forem incluídos objetos de escopo do servidor, a auditoria será criada. No entanto, os objetos de escopo do servidor não serão incluídos e nenhum erro será retornado. Para auditar objetos de escopo do servidor, use uma especificação de auditoria de banco de dados no banco de dados mestre.

As especificações de auditoria de banco de dados residem no banco de dados quando são criadas, com exceção do banco de dados do sistema TempDB.

Segurança

Permissões

  • Os usuários com a permissão ALTER ANY DATABASE AUDIT podem criar especificações de auditoria de banco de dados e associá-las a auditorias.

  • Depois que uma especificação de auditoria de banco de dados é criada, entidades com as permissões CONTROL SERVER ou ALTER ANY DATABASE AUDIT podem exibi-la. A conta sysadmin também pode exibi-la.

Como usar o SQL Server Management Studio.

Para criar uma auditoria de servidor

  1. No Pesquisador de Objetos, expanda a pasta Segurança .

  2. Clique com o botão direito do mouse na pasta Auditorias e selecione Nova Auditoria. Para obter mais informações, confira Criar uma auditoria de servidor e uma especificação de auditoria de servidor.

  3. Quando terminar de selecionar as opções, selecione OK.

Para criar uma especificação de auditoria no nível de banco de dados

  1. No Pesquisador de Objetos, expanda o banco de dados no qual deseja criar a especificação de auditoria.

  2. Expanda a pasta Segurança .

  3. Clique com o botão direito do mouse na pasta Especificações de Auditoria do Banco de Dados e selecione Nova Especificação de Auditoria do Banco de Dados.

    Estas opções estão disponíveis na caixa de diálogo Criar Especificação de Auditoria de Banco de Dados:

    Nome
    O nome da especificação de auditoria de banco de dados. Um nome é gerado automaticamente quando você cria uma especificação de auditoria de servidor. O nome é editável.

    Auditoria
    O nome de um objeto de auditoria de servidor existente. Digite o nome da auditoria ou selecione-o na lista.

    Tipo de Ação de Auditoria
    Especifica os grupos de ação de auditoria no nível de banco de dados e as ações de auditoria a capturar. Para obter uma lista dos grupos de ação de auditoria no nível de banco de dados, ações de auditoria e uma descrição dos eventos que eles contêm, confira Ações e grupos de ações de auditoria do SQL Server.

    Esquema de Objeto
    Exibe o esquema para Object Nameespecificado.

    Object Name
    Nome do objeto a ser auditado. Esta opção está disponível somente para ações de auditoria. Ela não se aplica a grupos de auditoria.

    Reticências (...)
    Abre a caixa de diálogo Selecionar Objetos para que você possa procurar e selecionar um objeto disponível, com base no Tipo de Ação de Auditoria especificado.

    Nome Principal
    A conta para filtrar a auditoria para o objeto que está sendo auditado.

    Reticências (...)
    Abre a caixa de diálogo Selecionar Objetos para que você possa procurar e selecionar um objeto disponível, com base no Nome do Objeto especificado.

  4. Quando terminar de selecionar as opções, selecione OK.

Usando o Transact-SQL

Para criar uma auditoria de servidor

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, selecione Nova Consulta.

  3. Cole o exemplo a seguir na janela de consulta e selecione Executar.

    USE master ;  
    GO  
    -- Create the server audit.   
    CREATE SERVER AUDIT Payrole_Security_Audit  
        TO FILE ( FILEPATH =   
    'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA' ) ;   
    GO  
    -- Enable the server audit.   
    ALTER SERVER AUDIT Payrole_Security_Audit   
    WITH (STATE = ON) ;  
    

Para criar uma especificação de auditoria no nível de banco de dados

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, selecione Nova Consulta.

  3. Cole o exemplo a seguir na janela de consulta e selecione Executar. Este exemplo cria uma especificação de auditoria de banco de dados chamada Audit_Pay_Tables. Ela audita as instruções SELECT e INSERT pelo usuário dbo para a tabela HumanResources.EmployeePayHistory, com base na auditoria do servidor definida na seção anterior.

    USE AdventureWorks2022;   
    GO  
    -- Create the database audit specification.   
    CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables  
    FOR SERVER AUDIT Payrole_Security_Audit  
    ADD (SELECT , INSERT  
         ON HumanResources.EmployeePayHistory BY dbo )   
    WITH (STATE = ON) ;   
    GO  
    
    

Para obter mais informações, veja CREATE SERVER AUDIT (Transact-SQL) e CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL).