MEMBUAT SPESIFIKASI AUDIT DATABASE (Transact-SQL)

Berlaku untuk:SQL ServerAzure 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

Sintaksis

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

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

audit_specification_name
Adalah nama spesifikasi audit.

audit_name
Adalah nama audit tempat spesifikasi ini diterapkan.

audit_action_specification
Adalah spesifikasi tindakan pada jaminan oleh prinsipal yang harus dicatat dalam audit.

action
Adalah 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
Adalah 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
Adalah nama kelas (jika berlaku) pada yang dapat diamankan.

Securable
Adalah tabel, tampilan, atau objek lain yang dapat diamankan dalam database tempat menerapkan tindakan audit atau grup tindakan audit. Untuk informasi selengkapnya, lihat Securables.

principal
Adalah nama prinsipal database untuk menerapkan tindakan audit atau grup tindakan audit. Untuk mengaudit semua prinsipal database, gunakan prinsipal publicdatabase . 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, spesifikasi tersebut dapat dilihat oleh pengguna dengan CONTROL SERVER izin, atau sysadmin akun.

Contoh

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

Contoh berikut membuat audit server yang disebut Payrole_Security_Audit lalu spesifikasi audit database yang disebut Payrole_Security_Audit audit SELECT dan INSERT pernyataan oleh anggota public peran database mana pun, untuk HumanResources.EmployeePayHistory tabel dalam AdventureWorks2022 database. Ini memiliki efek bahwa setiap pengguna diaudit karena setiap pengguna selalu menjadi anggota public peran.

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. Mengaudit DML apa pun (INSERT, UPDATE, atau DELETE) pada semua objek dalam skema penjualan 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, UPDATE dan DELETE pernyataan oleh pengguna dalam peran SalesUKdatabase baru , untuk semua objek dalam Sales skema dalam AdventureWorks2022 database.

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  

Lihat Juga

CREATE SERVER AUDIT (Transact-SQL)
ALTER SERVER AUDIT (Transact-SQL)
DROP SERVER AUDIT (Transact-SQL)
MEMBUAT SPESIFIKASI AUDIT SERVER (Transact-SQL)
UBAH SPESIFIKASI AUDIT SERVER (Transact-SQL)
SPESIFIKASI AUDIT SERVER DROP (Transact-SQL)
MEMBUAT SPESIFIKASI AUDIT DATABASE (Transact-SQL)
UBAH SPESIFIKASI AUDIT DATABASE (Transact-SQL)
HILANGKAN SPESIFIKASI AUDIT DATABASE (T-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sys.fn_get_audit_file (T-SQL)
sys.server_audits (T-SQL)
sys.server_file_audits (T-SQL)
sys.server_audit_specifications (T-SQL)
sys.server_audit_specification_details (T-SQL)
sys.database_audit_specifications (T-SQL)
sys.database_audit_specification_details (T-SQL)
sys.dm_server_audit_status (T-SQL)
sys.dm_audit_actions (T-SQL)
Membuat Audit Server dan Spesifikasi Audit Server