Udostępnij za pomocą


UTWORZENIE SPECYFIKACJI AUDYTU BAZY DANYCH (Transact-SQL)

Dotyczy:SQL ServerAzure SQL Managed Instance

Tworzy obiekt specyfikacji audytu bazy danych za pomocą funkcji audytu SQL Server. Aby uzyskać więcej informacji, zobacz SQL Server Audit (Database Engine).

Transact-SQL konwencje składni

Składnia

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

Nazwa specyfikacji audytu.

audit_name

Nazwa audytu, do którego ta specyfikacja jest stosowana.

audit_action_specification

Określenie działań dotyczących zabezpieczeń przez podmioty, które powinny być odnotowane podczas audytu.

action

Nazwa jednej lub więcej audytowalnych działań na poziomie bazy danych. Listę działań audytowych można znaleźć w sekcji SQL Server Audit Action Groups and Actions.

audit_action_group_name

Nazwa jednej lub więcej grup audytowalnych działań na poziomie bazy danych. Listę grup akcji audytu można znaleźć w sekcji SQL Server Audit Action Groups and Actions.

klasa

Nazwa klasy (jeśli dotyczy) na zabezpieczeniu.

securable

Tabela, widok lub inny zabezpieczony obiekt w bazie danych, na którym należy zastosować akcję audytową lub grupę akcji audytu. Aby uzyskać więcej informacji, zobacz Zabezpieczenia.

principal

Nazwa podmiotu bazy danych, na którym należy zastosować działania audytowe lub grupy audytu. Aby przeprowadzić audyt wszystkich głównych baz danych, użyj publicznego principal bazy danych. Więcej informacji można znaleźć w sekcji Principals (Database Engine).

Z ( STAN = { ON | WYŁĄCZ } )

Umożliwia lub wyłącza audyt w zakresie zbierania dokumentacji dla tej specyfikacji audytu.

Uwagi

Specyfikacje audytu baz danych to obiekty niezabezpieczalne znajdujące się w danej bazie danych. Gdy specyfikacja audytu bazy danych jest tworzona, jest ona wyłączona.

Permissions

Użytkownicy posiadający ALTER ANY DATABASE AUDIT uprawnienia mogą tworzyć specyfikacje audytu baz danych i przypisywać je do dowolnego audytu.

Po utworzeniu specyfikacji audytu bazy danych użytkownicy posiadający CONTROL SERVER uprawnienia lub konto mogą sysadmin ją przeglądać.

Przykłady

Przykłady kodu w tym artykule korzystają z przykładowej bazy danych AdventureWorks2025 lub AdventureWorksDW2025, którą można pobrać ze strony głównej Przykładów programu Microsoft SQL Server i projektów społeczności.

A. Audytuj SELECT i INSERT w tabeli dla dowolnego principa bazy danych

Poniższy przykład tworzy audyt serwera zwany oraz Payroll_Security_Audit specyfikację audytu bazy danych o nazwie Payroll_Security_Audit audyty SELECT oraz INSERT instrukcje przez dowolnego członka roli publicznej bazy danych, dla tabeli HumanResources.EmployeePayHistory . Każdy użytkownik jest audytowany, ponieważ każdy użytkownik jest zawsze członkiem roli publicznej .

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. Audytuj wszelkie modyfikacje danych wszystkich obiektów w schemacie dla konkretnej roli bazy danych

Poniższy przykład tworzy audyt serwera zwany oraz DataModification_Security_Audit specyfikację audytu bazy danych o nazwie Audit_Data_Modification_On_All_Sales_Tables , która audytuje INSERT, UPDATE, oraz DELETE instrukcje użytkowników w nowej roli SalesUKbazy danych , dla wszystkich obiektów w schemiacie Sales .

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

Specyfikacje audytu serwera:

Specyfikacje audytu baz danych:

Widoki katalogów i DMV: