Partilhar via


CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

Cria um objeto de especificação de auditoria de banco de dados usando o recurso de auditoria do SQL Server. Para obter mais informações, consulte Compreendendo a auditoria do SQL Server.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

CREATE DATABASE AUDIT SPECIFICATION audit_specification_name
{
    FOR SERVER AUDIT audit_name 
        [ { ADD ( { <audit_action_specification> | audit_action_group_name } ) 
      } [, ...n] ]
    [ WITH ( STATE = { ON | OFF } ) ]
}
[ ; ]
<audit_action_specification>::=
{
      action [ ,...n ]ON [ class :: ] securable BY principal [ ,...n ]
}

Argumentos

  • audit_specification_name
    O nome da especificação de auditoria.

  • audit_name
    O nome da auditoria à qual essa especificação se aplica.

  • audit_action_specification
    A especificação de ações em protegíveis por entidades que devem ser registradas na auditoria.

  • action
    O nome de um ou mais ações auditáveis em nível de banco de dados. Para obter uma lista de ações de auditoria, consulte Ações e grupos de ações de auditoria do SQL Server.

  • audit_action_group_name
    O nome de um ou mais grupos de ações auditáveis em nível de banco de dados. Para obter uma lista de grupos de ações de auditoria, consulte Ações e grupos de ações de auditoria do SQL Server.

  • class
    O nome da classe (se aplicável) no protegível.

  • securable
    A tabela, exibição ou outro objeto protegível no banco de dados no qual aplicar a ação de auditoria ou o grupo de ações de auditoria. Para obter mais informações, consulte Protegíveis.

  • principal
    É o nome da entidade SQL Server na qual aplicar a ação de auditoria ou grupo de ações de auditoria. Para obter mais informações, consulte Entidades (Mecanismo de Banco de Dados).

  • WITH ( STATE = { ON | OFF } )
    Habilita ou desabilita a auditoria de registros de coleta para essa especificação de auditoria.

Comentários

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.

Para obter informações sobre as especificações de auditoria de banco de dados em uma auditoria do SQL Server, use a exibição de catálogo sys.database_ audit_specifications.

Quando você 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.

Permissões

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

Depois que uma especificação de auditoria de banco de dados é criada, ela pode ser exibida por entidades que tenham a permissão CONTROL SERVERALTER ANY DATABASE AUDIT ou com a conta sysadmin.

Exemplos

O exemplo a seguir cria uma especificação de auditoria de servidor denominada Payrole_Security_Audit e, depois, uma especificação de auditoria de banco de dados denominada Payrole_Security_Audit que audita instruções SELECT e INSERT pelo usuário dbo, para uma tabela HumanResources.EmployeePayHistory no banco de dados AdventureWorks.

USE master ;
GO
-- Create the server audit.
CREATE SERVER AUDIT Payrole_Security_Audit
    TO FILE ( FILEPATH = 
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA' ) ;
GO
-- Enable the server audit.
ALTER SERVER AUDIT Payrole_Security_Audit 
WITH (STATE = ON) ;
GO
-- Move to the target database.
USE AdventureWorks ;
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

Consulte também

Referência

Conceitos