CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

Cria um objeto de especificação de auditoria do banco de dados usando o recurso de auditoria do SQL Server. Para obter mais informações, confira Auditoria do SQL Server (Mecanismo de Banco de Dados).

Convenções de sintaxe de 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 ]  
}  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

audit_specification_name
É o nome da especificação de auditoria do servidor.

audit_name
É o nome da auditoria à qual esta especificação é aplicada.

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ção do SQL Server Audit.

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 Securables.

principal
É o nome da entidade de segurança do banco de dados na qual aplicar a ação de auditoria ou o grupo de ações de auditoria. Para auditar todas as entidades de segurança do banco de dados, use a entidade de segurança do banco de dados public. Para obter mais informações, confira Entidades de segurança (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.

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 qualquer auditoria.

Após a criação de uma especificação de auditoria de banco de dados, ela pode ser exibida pelos usuários que têm a permissão CONTROL SERVER ou a conta sysadmin.

Exemplos

a. Auditar SELECT e INSERT em uma tabela para qualquer entidade de segurança do banco de dados

O exemplo a seguir cria uma auditoria de servidor denominada Payrole_Security_Audit e, em seguida, uma especificação de auditoria de banco de dados denominada Payrole_Security_Audit que audita as instruções SELECT e INSERT por qualquer membro dapublicda função de banco de dados para a tabela HumanResources.EmployeePayHistory no banco de dados AdventureWorks2022. Como efeito disso, cada usuário é auditado, visto que cada usuário sempre é membro da função public.

USE master ;  
GO  
-- Create the server audit.  
CREATE SERVER AUDIT Payrole_Security_Audit  
    TO FILE ( FILEPATH =   
'D:\SQLAudit\' ) ;  -- make sure this path exists
GO  
-- Enable the server audit.  
ALTER SERVER AUDIT Payrole_Security_Audit   
WITH (STATE = ON) ;  
GO  
-- Move to the target database.  
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 public )  
WITH (STATE = ON) ;  
GO  

B. Faça a auditoria de qualquer DML (INSERT, UPDATE ou DELETE) em todos os objetos no esquema vendas para uma função de banco de dados específica

O exemplo a seguir cria uma auditoria de servidor denominada DataModification_Security_Audit e, em seguida, uma especificação de auditoria de banco de dados chamada Audit_Data_Modification_On_All_Sales_Tables que audita instruções INSERT, UPDATE e DELETE por usuários em uma nova função de banco de dados SalesUK, para todos os objetos no esquema Sales no banco de dados AdventureWorks2022.

USE master ;  
GO  
-- Create the server audit.
-- Change the path to a path that the SQLServer Service has access to. 
CREATE SERVER AUDIT DataModification_Security_Audit  
    TO FILE ( FILEPATH = 
'D:\SQLAudit\' ) ;  -- make sure this path exists
GO  
-- Enable the server audit.  
ALTER SERVER AUDIT DataModification_Security_Audit   
WITH (STATE = ON) ;  
GO  
-- Move to the target database.  
USE AdventureWorks2022;  
GO  
CREATE ROLE SalesUK
GO
-- Create the database audit specification.  
CREATE DATABASE AUDIT SPECIFICATION Audit_Data_Modification_On_All_Sales_Tables  
FOR SERVER AUDIT DataModification_Security_Audit  
ADD ( INSERT, UPDATE, DELETE  
     ON Schema::Sales BY SalesUK )  
WITH (STATE = ON) ;    
GO  

Consulte Também

CREATE SERVER AUDIT (Transact-SQL)
ALTER SERVER AUDIT (Transact-SQL)
DROP SERVER AUDIT (Transact-SQL)
CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sys.fn_get_audit_file (Transact-SQL)
sys.server_audits (Transact-SQL)
sys.server_file_audits (Transact-SQL)
sys.server_audit_specifications (Transact-SQL)
sys.server_audit_specification_details (Transact-SQL)
sys.database_audit_specifications (Transact-SQL)
sys.database_audit_specification_details (Transact-SQL)
sys.dm_server_audit_status (Transact-SQL)
sys.dm_audit_actions (Transact-SQL)
Criar uma auditoria de servidor e uma especificação de auditoria de servidor