Bagikan melalui


MEMBUAT SPESIFIKASI AUDIT DATABASE (Transact-SQL)

Berlaku untuk: SQL Server Azure SQL Managed Instance

Membuat objek spesifikasi audit database menggunakan fitur audit SQL Server. Untuk informasi selengkapnya, lihat Audit SQL Server (Mesin Database).

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

audit_specification_name

Nama spesifikasi audit.

audit_name

Nama audit tempat spesifikasi ini diterapkan.

audit_action_specification

Spesifikasi tindakan pada jaminan oleh prinsipal yang harus dicatat dalam audit.

action

Nama satu atau beberapa tindakan yang dapat diaudit tingkat database. Untuk daftar tindakan audit, lihat Grup tindakan dan Tindakan Audit SQL Server.

audit_action_group_name

Nama satu atau beberapa grup tindakan yang dapat diaudit tingkat database. Untuk daftar grup tindakan audit, lihat Grup tindakan dan Tindakan Audit SQL Server.

kelas

Nama kelas (jika berlaku) pada yang dapat diamankan.

Securable

Tabel, tampilan, atau objek yang dapat diamankan lainnya dalam database untuk menerapkan tindakan audit atau grup tindakan audit. Untuk informasi selengkapnya, lihat Securables.

principal

Nama prinsipal database untuk menerapkan tindakan audit atau grup tindakan audit. Untuk mengaudit semua prinsipal database, gunakan prinsipal database publik . Untuk informasi selengkapnya, lihat Prinsipal (Mesin Database).

WITH ( STATE = { ON | OFF } )

Mengaktifkan atau menonaktifkan audit dari mengumpulkan rekaman untuk spesifikasi audit ini.

Keterangan

Spesifikasi audit database adalah objek yang tidak dapat diamankan yang berada dalam database tertentu. Saat spesifikasi audit database dibuat, spesifikasi tersebut dalam status dinonaktifkan.

Izin

Pengguna dengan ALTER ANY DATABASE AUDIT izin dapat membuat spesifikasi audit database dan mengikatnya ke audit apa pun.

Setelah spesifikasi audit database dibuat, pengguna dengan CONTROL SERVER izin, atau sysadmin akun, dapat melihatnya.

Contoh

Sampel kode Transact-SQL dalam artikel ini menggunakan AdventureWorks2022 database sampel atau AdventureWorksDW2022 , yang dapat Anda unduh dari halaman beranda Sampel Microsoft SQL Server dan Proyek Komunitas.

J. Mengaudit SELECT dan INSERT pada tabel untuk prinsipal database apa pun

Contoh berikut membuat audit server yang disebut Payroll_Security_Audit lalu spesifikasi audit database yang disebut Payroll_Security_Audit audit SELECT dan INSERT pernyataan oleh setiap anggota peran database publik, untuk tabel.HumanResources.EmployeePayHistory Setiap pengguna diaudit, karena setiap pengguna selalu menjadi anggota peran publik .

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. Mengaudit modifikasi data apa pun pada semua objek dalam skema untuk peran database tertentu

Contoh berikut membuat audit server yang disebut DataModification_Security_Audit lalu spesifikasi audit database yang disebut Audit_Data_Modification_On_All_Sales_Tables audit INSERT, , UPDATEdan DELETE pernyataan oleh pengguna dalam peran SalesUKdatabase baru , untuk semua objek dalam Sales skema.

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

Spesifikasi audit server:

Spesifikasi audit database:

Tampilan katalog dan DMV: