Partilhar via


CRIAR ESPECIFICAÇÃO DE AUDITORIA DE BASE DE DADOS (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL Managed Instance

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

Transact-SQL convenções de sintaxe

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 ]
}

Arguments

audit_specification_name

O nome da especificação da auditoria.

audit_name

O nome da auditoria a que esta especificação é aplicada.

audit_action_specification

A especificação das ações sobre garantias pelos principais responsáveis que devem ser registadas na auditoria.

action

O nome de uma ou mais ações auditáveis ao nível da base de dados. Para uma lista de ações de auditoria, consulte Grupos e Ações de Ações de Auditoria do SQL Server.

audit_action_group_name

O nome de um ou mais grupos de ações auditáveis ao nível da base de dados. Para uma lista de grupos de ações de auditoria, consulte Grupos e Ações de Ações de Auditoria do SQL Server.

classe

O nome da classe (se aplicável) no valor garantido.

securable

A tabela, vista ou outro objeto protegido na base de dados onde aplicar a ação de auditoria ou o grupo de ações de auditoria. Para obter mais informações, consulte Itens de Segurança.

principal

O nome do principal da base de dados sobre o qual aplicar a ação de auditoria ou grupo de ação de auditoria. Para auditar todos os princípios da base de dados, utilize o princípio da base de dados pública . Para mais informações, consulte Princípios (Motor de Base de Dados).

COM ( ESTADO = { EM | DESLIGADO } )

Permite ou impede a auditoria de recolher registos para esta especificação de auditoria.

Observações

As especificações de auditoria de bases de dados são objetos não protegíveis que residem numa dada base de dados. Quando uma especificação de auditoria de base de dados é criada, está num estado desativado.

Permissions

Os utilizadores com essa ALTER ANY DATABASE AUDIT permissão podem criar especificações de auditoria de base de dados e vinculá-las a qualquer auditoria.

Após a criação de uma especificação de auditoria à base de dados, os utilizadores com CONTROL SERVER permissão, ou a sysadmin conta, podem vê-la.

Examples

Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que pode ser descarregado da página inicial de Exemplos e Projetos da Comunidade do Microsoft SQL Server.

A. Auditar SELECT e INSERT numa tabela para qualquer princípio de base de dados

O exemplo seguinte cria uma auditoria de servidor chamada Payroll_Security_Audit e depois uma especificação de auditoria de base de dados chamada Payroll_Security_Audit que audita SELECT e INSERT declarações por qualquer membro da base de dados pública , para a HumanResources.EmployeePayHistory tabela. Cada utilizador é auditado, porque cada utilizador é sempre membro do papel público .

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 de um esquema para um papel específico na base de dados

O exemplo seguinte cria uma auditoria de servidor chamada DataModification_Security_Audit e depois uma especificação de auditoria de base de dados chamada Audit_Data_Modification_On_All_Sales_Tables que audita INSERT, UPDATE, e DELETE instruções dos utilizadores num novo papel SalesUKde base de dados , para todos os objetos do 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 de servidores:

Especificações de auditoria da base de dados:

Visualizações de catálogo e DMVs: