Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Yönetilen Örneği
SQL Server denetim özelliğini kullanarak bir veritabanı denetim spesifikasyonu nesnesi oluşturur. Daha fazla bilgi için bkz . SQL Server Denetimi (Veritabanı Altyapısı).
Transact-SQL söz dizimi kuralları
Sözdizimi
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
Denetim spesifikasyonunun adı.
audit_name
Bu spesifikasyonun uygulandığı denetimin adı.
audit_action_specification
Denetimde kaydedilmesi gereken yöneticiler tarafından menkul kıymetli varlıklar üzerinde yapılan işlemlerin belirtilmesi.
action
Veritabanı düzeyinde denetlenebilir bir veya daha fazla eylemin adı. Denetim eylemlerinin listesi için SQL Server Denetim Eylem Grupları ve Eylemleri'ne bakınız.
audit_action_group_name
Veritabanı düzeyinde denetlenebilir eylemlerden oluşan bir veya daha fazla grubun adı. Denetim eylem gruplarının listesi için SQL Server Denetim Eylem Grupları ve Eylemleri'ne bakınız.
sınıf
Temenkul belgedeki sınıf adı (varsa).
securable
Veritabanındaki tablo, görünüm veya denetim eylemi veya denetim eylem grubunun uygulanacağı diğer güvenli nesne. Daha fazla bilgi için bkz: Güvenlik Unsurları.
principal
Denetim eylemi veya denetim eylem grubunun uygulanacağı veritabanı başlıca adı. Tüm veritabanı yöneticilerini denetlemek için genel veritabanı prensibini kullanın. Daha fazla bilgi için Principals (Database Engine) bölümüne bakınız.
WITH ( STATE = { ÜZERINDE | KAPALI } )
Denetimin bu denetim spesifikasyonu için kayıt toplamasını mümkün kılar veya devre dışı bırakır.
Açıklamalar
Veritabanı denetim spesifikasyonları, belirli bir veritabanında bulunan güvenlikle alınamayan nesnelerdir. Bir veritabanı denetim spesifikasyonu oluşturulduğunda, bu durum devre dışı kalır.
Permissions
İzni alan ALTER ANY DATABASE AUDIT kullanıcılar, veritabanı denetim spesifikasyonları oluşturabilir ve onları herhangi bir denetime bağlayabilirler.
Bir veritabanı denetim spesifikasyonu oluşturulduktan sonra, izni veya CONTROL SERVER hesaba sahip sysadmin kullanıcılar bunu görebilir.
Örnekler
Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.
A. Herhangi bir veritabanı prensifi için bir tabloda SELECT ve INSERT denetleme
Aşağıdaki örnek, bir sunucu denetimi ve Payroll_Security_Audit ardından bu veritabanı denetimi spesifikasyonu olarak Payroll_Security_AuditSELECTINSERT adlandırılan bir veritabanı denetimi spesifikasyonu oluşturur; bu tür denetimler ve açıklamalar tablo için HumanResources.EmployeePayHistory açık veritabanı rolünün herhangi bir üyesi tarafından yapılır. Her kullanıcı denetleniyor, çünkü her kullanıcı her zaman kamu rolünün bir üyesidir.
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. Belirli bir veritabanı rolü için şemadaki tüm nesnelerde yapılan herhangi bir veri değişikliğini denetleyin
Aşağıdaki örnek, şemadaki tüm nesneler DataModification_Security_Audit için yeni bir veritabanı rolünde Audit_Data_Modification_On_All_Sales_Tableskullanıcıların denetimlerini ve ardından bir veritabanı denetim spesifikasyonunu INSERTUPDATEDELETESalesUK içeren bir sunucu denetimi Sales ve ardından veritabanı denetim spesifikasyonu oluşturulur.
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
İlgili görevler
Sunucu denetim özellikleri:
- SUNUCU DENETİM BELİRTİMİ OLUŞTUR (Transact-SQL)
- ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
- DROP SERVER DENETİM BELİRTİMİ (Transact-SQL)
Veritabanı denetim spesifikasyonları:
- VERİ TABANI DENETİM ÖZELLİĞİ OLUŞTUR (Transact-SQL)
- VERITABANI DENETIM SPESIFIKASYONUNU DEĞIŞTIR (Transact-SQL)
- VERİTABANI DENETİM ÖZELLİĞİ'Nİ SİL (Transact-SQL)
Katalog görünümleri ve DMV'ler:
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- sys.server_audit_specifications (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL) - Sunucu Denetim Özellikleri Detayları
- sys.database_denetim_özellikleri (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
İlgili içerik
- Sunucu Denetimi ve Sunucu Denetim Belirtimi oluşturma
- SUNUCU DENETİMİ OLUŞTUR (Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- DROP SERVER DENETİMİ (Transact-SQL)
- YETKILENDIRME DEĞIŞIKLIĞI (Transact-SQL)
- sys.fn_get_audit_file (Transact-SQL)
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)