Partilhar via


CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

Aplica-se a: SQL Server Instâ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 ]
}

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 sobre protegíveis por parte dos diretores que devem ser registradas na auditoria.

action

O nome de uma ou mais ações auditáveis no nível do 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 no nível do 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 banco de dados, use a entidade de banco de dados pública . 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.

Depois que uma especificação de auditoria de banco de dados é criada, os usuários com a CONTROL SERVER permissão ou a sysadmin conta podem exibi-la.

Exemplos

Os exemplos de código do Transact-SQL deste artigo usa o banco de dados de exemplo AdventureWorks2022 ou AdventureWorksDW2022, que pode ser baixado da home page Microsoft SQL Server Samples and Community Projects.

R. 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 chamada Payroll_Security_Audit e, em seguida, uma especificação de auditoria de banco de dados chamada Payroll_Security_Audit de auditorias SELECT e INSERT instruções de qualquer membro da função de banco de dados público , para a HumanResources.EmployeePayHistory tabela. Cada usuário é auditado, pois cada usuário é sempre membro da função pública .

USE master;
GO

-- Create the server audit.
CREATE SERVER AUDIT Payroll_Security_Audit
TO FILE (FILEPATH = 'D:\SQLAudit\'); -- make sure this path exists
GO

-- Enable the server audit.
ALTER SERVER AUDIT Payroll_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 Payroll_Security_Audit ADD (
    SELECT, INSERT ON HumanResources.EmployeePayHistory BY PUBLIC
)
WITH (STATE = ON);
GO

B. Auditar qualquer modificação de dados em todos os objetos em um esquema para uma função de banco de dados específica

O exemplo a seguir cria uma auditoria de servidor chamada DataModification_Security_Audit e, em seguida, uma especificação de auditoria de banco de dados chamada Audit_Data_Modification_On_All_Sales_Tables that audits INSERT, UPDATEe DELETE instruções de usuários em uma nova função SalesUKde banco de dados , para todos os objetos no Sales esquema.

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

Especificações de auditoria do servidor:

Especificações de auditoria de banco de dados:

Exibições de catálogo e DMVs: