Audit SQL Server (Mesin Database)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Mengaudit instans Mesin Database SQL Server atau database individual melibatkan peristiwa pelacakan dan pengelogan yang terjadi di Mesin Database. Audit SQL Server memungkinkan Anda membuat audit server, yang dapat berisi spesifikasi audit server untuk aktivitas tingkat server, dan spesifikasi audit database untuk aktivitas tingkat database. Kejadian yang diaudit dapat ditulis ke log kejadian atau ke file audit.

Penting

Pada Azure SQL Managed Instance, fitur T-SQL ini memiliki perubahan perilaku tertentu. Lihat Perbedaan T-SQL Azure SQL Managed Instance dari SQL Server untuk detail untuk semua perubahan perilaku T-SQL.

Ada beberapa tingkat audit untuk SQL Server, tergantung pada persyaratan pemerintah atau standar untuk penginstalan Anda. Audit SQL Server menyediakan alat dan proses yang harus Anda aktifkan, simpan, dan lihat audit di berbagai objek server dan database.

Anda dapat merekam grup tindakan audit server per instans, dan grup tindakan audit database atau tindakan audit database per database. Peristiwa audit akan terjadi setiap kali tindakan yang dapat diaudit ditemui.

Semua edisi SQL Server mendukung audit tingkat server. Semua edisi mendukung audit tingkat database yang dimulai dengan SQL Server 2016 (13.x) SP1. Sebelum itu, audit tingkat database terbatas pada edisi Enterprise, Developer, dan Evaluation. Untuk informasi selengkapnya, lihat Fitur yang Didukung oleh Edisi SQL Server 2016.

Catatan

Topik ini berlaku untuk SQL Server. Untuk SQL Database, lihat Mulai menggunakan audit database SQL.

Komponen Audit SQL Server

Audit adalah kombinasi dari beberapa elemen ke dalam satu paket untuk sekelompok tindakan server atau tindakan database tertentu. Komponen audit SQL Server menggabungkan untuk menghasilkan output yang disebut audit, sama seperti definisi laporan yang dikombinasikan dengan elemen grafik dan data menghasilkan laporan.

Audit SQL Server menggunakan Extended Events untuk membantu membuat audit. Untuk informasi selengkapnya tentang Acara yang Diperluas, lihat Acara yang Diperluas.

Audit SQL Server

Objek Audit SQL Server mengumpulkan satu instans server atau tindakan tingkat database dan grup tindakan untuk dipantau. Audit berada di tingkat instans SQL Server. Anda dapat memiliki beberapa audit per instans SQL Server.

Saat Anda menentukan audit, Anda menentukan lokasi untuk output hasil. Ini adalah tujuan audit. Audit dibuat dalam status dinonaktifkan , dan tidak secara otomatis mengaudit tindakan apa pun. Setelah audit diaktifkan, tujuan audit menerima data dari audit.

Spesifikasi Audit Server

Objek Spesifikasi Audit Server milik audit. Anda dapat membuat satu spesifikasi audit server per audit, karena keduanya dibuat di cakupan instans SQL Server.

Spesifikasi audit server mengumpulkan banyak grup tindakan tingkat server yang dinaikkan oleh fitur Acara yang Diperluas. Anda dapat menyertakan grup tindakan audit dalam spesifikasi audit server. Grup tindakan audit adalah grup tindakan yang telah ditentukan sebelumnya, yang merupakan peristiwa atom yang terjadi di Mesin Database. Tindakan ini dikirim ke audit, yang merekamnya dalam target.

Grup tindakan audit tingkat server dijelaskan dalam topik SQL Server Audit Action Groups and Actions.

Spesifikasi Audit Database

Objek Spesifikasi Audit Database juga termasuk dalam audit SQL Server. Anda dapat membuat satu spesifikasi audit database per database SQL Server per audit.

Spesifikasi audit database mengumpulkan tindakan audit tingkat database yang dimunculkan oleh fitur Extended Events. Anda dapat menambahkan grup tindakan audit atau mengaudit peristiwa ke spesifikasi audit database. Peristiwa audit adalah tindakan atomik yang dapat diaudit oleh mesin SQL Server. Grup tindakan audit adalah grup tindakan yang telah ditentukan sebelumnya. Keduanya berada di cakupan database SQL Server. Tindakan ini dikirim ke audit, yang merekamnya dalam target. Jangan sertakan objek cakupan server, seperti tampilan sistem, dalam spesifikasi audit database pengguna.

Grup tindakan audit tingkat database dan tindakan audit dijelaskan dalam topik SQL Server Audit Action Groups and Actions.

Target

Hasil audit dikirim ke target, yang dapat berupa file, log peristiwa Keamanan Windows, atau log peristiwa Aplikasi Windows. Log harus ditinjau dan diarsipkan secara berkala untuk memastikan bahwa target memiliki ruang yang cukup untuk menulis rekaman tambahan.

Penting

Setiap pengguna yang diautentikasi dapat membaca dan menulis ke log peristiwa Aplikasi Windows. Log peristiwa Aplikasi memerlukan izin yang lebih rendah daripada log peristiwa Keamanan Windows dan kurang aman daripada log peristiwa Keamanan Windows.

Menulis ke log Keamanan Windows mengharuskan akun layanan SQL Server ditambahkan ke kebijakan Hasilkan audit keamanan. Secara default, Sistem Lokal, Layanan Lokal, dan Layanan Jaringan adalah bagian dari kebijakan ini. Pengaturan ini dapat dikonfigurasi dengan menggunakan snap-in kebijakan keamanan (secpol.msc). Selain itu, kebijakan keamanan akses objek Audit harus diaktifkan untuk Keberhasilan dan Kegagalan. Pengaturan ini dapat dikonfigurasi dengan menggunakan snap-in kebijakan keamanan (secpol.msc). Di Windows Vista atau Windows Server 2008 (dan yang lebih tinggi), Anda dapat mengatur kebijakan yang dihasilkan aplikasi yang lebih terperinci dari baris perintah dengan menggunakan program kebijakan audit (AuditPol.exe). Untuk informasi selengkapnya tentang langkah-langkah untuk mengaktifkan penulisan ke log Keamanan Windows, lihat Menulis Peristiwa Audit SQL Server ke Log Keamanan. Untuk informasi selengkapnya tentang program Auditpol.exe, lihat artikel Pangkalan Pengetahuan 921469, Cara menggunakan Kebijakan Grup untuk mengonfigurasi audit keamanan terperinci. Log peristiwa Windows bersifat global untuk sistem operasi Windows. Untuk informasi selengkapnya tentang log peristiwa Windows, lihat Gambaran Umum Penampil Peristiwa. Jika Anda memerlukan izin yang lebih tepat pada audit, gunakan target file biner.

Saat menyimpan informasi audit ke file, untuk membantu mencegah perusakan, Anda dapat membatasi akses ke lokasi file dengan cara berikut:

  • Akun Layanan SQL Server harus memiliki izin Baca dan Tulis.

  • Administrator Audit biasanya memerlukan izin Baca dan Tulis. Ini mengasumsikan bahwa Administrator Audit adalah akun Windows untuk administrasi file audit, seperti: menyalinnya ke berbagi yang berbeda, mencadangkannya, dan sebagainya.

  • Pembaca Audit yang berwenang untuk membaca file audit harus memiliki izin Baca.

Bahkan ketika Mesin Database menulis ke file, pengguna Windows lain dapat membaca file audit jika mereka memiliki izin. Mesin Database tidak mengambil kunci eksklusif yang mencegah operasi baca.

Karena Mesin Database dapat mengakses file, login SQL Server yang memiliki izin CONTROL SERVER dapat menggunakan Mesin Database untuk mengakses file audit. Untuk merekam pengguna yang membaca file audit, tentukan audit pada master.sys.fn_get_audit_file. Ini mencatat login dengan izin CONTROL SERVER yang telah mengakses file audit melalui SQL Server.

Jika Administrator Audit menyalin file ke lokasi lain (untuk tujuan arsip, dan sebagainya), ACL pada lokasi baru harus dikurangi ke izin berikut:

  • Administrator Audit - Baca/Tulis

  • Pembaca Audit - Baca

Kami menyarankan agar Anda membuat laporan audit dari instans terpisah SQL Server, seperti instans SQL Server Express, di mana hanya Administrator Audit atau Pembaca Audit yang memiliki akses. Dengan menggunakan instans terpisah Mesin Database untuk pelaporan, Anda dapat membantu mencegah pengguna yang tidak sah mendapatkan akses ke catatan audit.

Anda dapat menawarkan perlindungan tambahan terhadap akses yang tidak sah dengan mengenkripsi folder tempat file audit disimpan dengan menggunakan Enkripsi Drive Windows BitLocker atau Sistem File Enkripsi Windows.

Untuk informasi selengkapnya tentang catatan audit yang ditulis ke target, lihat Catatan Audit SQL Server.

Gambaran Umum Penggunaan Audit SQL Server

Anda dapat menggunakan SQL Server Management Studio atau Transact-SQL untuk menentukan audit. Setelah audit dibuat dan diaktifkan, target akan menerima entri.

Anda dapat membaca log peristiwa Windows dengan menggunakan utilitas Penampil Peristiwa di Windows. Untuk target file, Anda dapat menggunakan Penampil File Log di SQL Server Management Studio atau fungsi fn_get_audit_file untuk membaca file target.

Proses umum untuk membuat dan menggunakan audit adalah sebagai berikut.

  1. Buat audit dan tentukan target.

  2. Buat spesifikasi audit server atau spesifikasi audit database yang memetakan ke audit. Aktifkan spesifikasi audit.

  3. Aktifkan audit.

  4. Baca peristiwa audit dengan menggunakan Windows Event Viewer, Log File Viewer, atau fungsi fn_get_audit_file.

Untuk informasi selengkapnya, lihat Membuat Audit Server dan Spesifikasi Audit Server dan Membuat Audit Server dan Spesifikasi Audit Database.

Pertimbangan

Dalam kasus kegagalan selama inisiasi audit, server tidak akan dimulai. Dalam hal ini, server dapat dimulai dengan menggunakan opsi -f di baris perintah.

Ketika kegagalan audit menyebabkan server dimatikan atau tidak dimulai karena ON_FAILURE=SHUTDOWN ditentukan untuk audit, peristiwa MSG_AUDIT_FORCED_SHUTDOWN akan ditulis ke log. Karena pematian akan terjadi pada pertemuan pertama pengaturan ini, peristiwa akan ditulis satu kali. Kejadian ini ditulis setelah pesan kegagalan untuk audit yang menyebabkan pematian. Administrator dapat melewati penonaktifan yang diinduksi audit dengan memulai SQL Server dalam mode Pengguna Tunggal menggunakan bendera -m . Jika Anda mulai dalam mode Pengguna Tunggal, Anda akan menurunkan tingkat audit di mana ON_FAILURE=SHUTDOWN ditentukan untuk dijalankan dalam sesi tersebut sebagai ON_FAILURE=LANJUTKAN. Ketika SQL Server dimulai dengan menggunakan bendera -m , pesan MSG_AUDIT_SHUTDOWN_BYPASSED akan ditulis ke log kesalahan.

Untuk informasi selengkapnya tentang opsi startup layanan, lihat Opsi Startup Layanan Mesin Database.

Melampirkan Database dengan Audit Yang Ditentukan

Melampirkan database yang memiliki spesifikasi audit dan menentukan GUID yang tidak ada di server akan menyebabkan spesifikasi audit tanpa intim . Karena audit dengan GUID yang cocok tidak ada pada instans server, tidak ada peristiwa audit yang akan direkam. Untuk memperbaiki situasi ini, gunakan perintah ALTER DATABASE AUDIT SPECIFICATION untuk menyambungkan spesifikasi audit tanpa intim ke audit server yang ada. Atau, gunakan perintah CREATE SERVER AUDIT untuk membuat audit server baru dengan GUID yang ditentukan.

Anda dapat melampirkan database yang memiliki spesifikasi audit yang ditentukan di dalamnya ke edisi lain SQL Server yang tidak mendukung audit SQL Server, seperti SQL Server Express tetapi tidak akan merekam peristiwa audit.

Pencerminan Database dan Audit SQL Server

Database yang memiliki spesifikasi audit database yang ditentukan dan yang menggunakan pencerminan database akan menyertakan spesifikasi audit database. Untuk bekerja dengan benar pada instans SQL yang dicerminkan, item berikut harus dikonfigurasi:

  • Server cermin harus memiliki audit dengan GUID yang sama untuk mengaktifkan spesifikasi audit database untuk menulis catatan audit. Ini dapat dikonfigurasi dengan menggunakan perintah CREATE AUDIT WITH GUID GUID =<dari Audit> Server sumber.

  • Untuk target file biner, akun layanan server cermin harus memiliki izin yang sesuai ke lokasi tempat jejak audit sedang ditulis.

  • Untuk target log peristiwa Windows, kebijakan keamanan pada komputer tempat server cermin berada harus mengizinkan akses akun layanan ke log peristiwa keamanan atau aplikasi.

Mengaudit Administrator

Anggota peran server tetap sysadmin diidentifikasi sebagai pengguna dbo di setiap database. Untuk mengaudit tindakan administrator, audit tindakan pengguna dbo .

Membuat dan Mengelola Audit dengan Transact-SQL

Anda dapat menggunakan pernyataan DDL, tampilan dan fungsi manajemen dinamis, dan tampilan katalog untuk mengimplementasikan semua aspek Audit SQL Server.

Pernyataan Bahasa Definisi Data

Anda dapat menggunakan pernyataan DDL berikut untuk membuat, mengubah, dan menghilangkan spesifikasi audit:

Pernyataan DDL Deskripsi
ALTER AUTHORIZATION Mengubah kepemilikan yang dapat diamankan.
UBAH SPESIFIKASI AUDIT DATABASE Mengubah objek spesifikasi audit database menggunakan fitur Audit SQL Server.
ALTER SERVER AUDIT Mengubah objek audit server menggunakan fitur Audit SQL Server.
UBAH SPESIFIKASI AUDIT SERVER Mengubah objek spesifikasi audit server menggunakan fitur Audit SQL Server.
MEMBUAT SPESIFIKASI AUDIT DATABASE Membuat objek spesifikasi audit database menggunakan fitur audit SQL Server.
BUAT AUDIT SERVER Membuat objek audit server menggunakan Audit SQL Server.
MEMBUAT SPESIFIKASI AUDIT SERVER Membuat objek spesifikasi audit server menggunakan fitur Audit SQL Server.
HILANGKAN SPESIFIKASI AUDIT DATABASE Menghilangkan objek spesifikasi audit database menggunakan fitur Audit SQL Server.
HILANGKAN AUDIT SERVER Menghilangkan Objek Audit Server menggunakan fitur Audit SQL Server.
HILANGKAN SPESIFIKASI AUDIT SERVER Menghilangkan objek spesifikasi audit server menggunakan fitur Audit SQL Server.

Tampilan dan Fungsi Dinamis

Tabel berikut mencantumkan tampilan dan fungsi dinamis yang bisa Anda gunakan untuk Audit SQL Server.

Tampilan dan fungsi dinamis Deskripsi
sys.dm_audit_actions Mengembalikan baris untuk setiap tindakan audit yang dapat dilaporkan dalam log audit dan setiap grup tindakan audit yang dapat dikonfigurasi sebagai bagian dari Audit SQL Server.
sys.dm_server_audit_status Menyediakan informasi tentang status audit saat ini.
sys.dm_audit_class_type_map Mengembalikan tabel yang memetakan bidang class_type di log audit ke bidang class_desc di sys.dm_audit_actions.
fn_get_audit_file Mengembalikan informasi dari file audit yang dibuat oleh audit server.

Tampilan Katalog

Tabel berikut mencantumkan tampilan katalog yang bisa Anda gunakan untuk audit SQL Server.

Tampilan katalog Deskripsi
sys.database_audit_specifications Berisi informasi tentang spesifikasi audit database dalam audit SQL Server pada instans server.
sys.database_audit_specification_details Berisi informasi tentang spesifikasi audit database dalam audit SQL Server pada instans server untuk semua database.
sys.server_audits Berisi satu baris untuk setiap audit SQL Server dalam instans server.
sys.server_audit_specifications Berisi informasi tentang spesifikasi audit server dalam audit SQL Server pada instans server.
sys.server_audit_specifications_details Berisi informasi tentang detail spesifikasi audit server (tindakan) dalam audit SQL Server pada instans server.
sys.server_file_audits Berisi penyimpanan informasi yang diperluas tentang jenis audit file dalam audit SQL Server pada instans server.

Izin

Setiap fitur dan perintah untuk Audit SQL Server memiliki persyaratan izin individual.

Untuk membuat, mengubah, atau menghilangkan Audit Server atau Spesifikasi Audit Server, prinsipal server memerlukan izin ALTER ANY SERVER AUDIT atau CONTROL SERVER. Untuk membuat, mengubah, atau menghilangkan Spesifikasi Audit Database, prinsipal database memerlukan izin UBAH AUDIT DATABASE APA PUN atau izin UBAH atau KONTROL pada database. Selain itu, prinsipal harus memiliki izin untuk menyambungkan ke database, atau mengubah izin AUDIT SERVER APA PUN atau SERVER KONTROL.

Izin LIHAT DEFINISI APA PUN menyediakan akses untuk melihat tampilan audit tingkat server dan VIEW DEFINITION menyediakan akses untuk melihat tampilan audit tingkat database. Penolakan izin ini, mengambil alih kemampuan untuk melihat tampilan katalog, bahkan jika prinsipal memiliki izin ALTER ANY SERVER AUDIT atau ALTER ANY DATABASE AUDIT.

Untuk informasi selengkapnya tentang cara memberikan hak dan izin, lihat GRANT (Transact-SQL).

Perhatian

Prinsipal dalam peran sysadmin dapat mengubah komponen audit apa pun dan yang dalam peran db_owner dapat mengubah spesifikasi audit dalam database. Audit SQL Server akan memvalidasi bahwa log masuk yang membuat atau mengubah spesifikasi audit memiliki setidaknya izin ALTER ANY DATABASE AUDIT. Namun, tidak ada validasi saat Anda melampirkan database. Anda harus menganggap semua Spesifikasi Audit Database hanya dapat dipercaya seperti prinsipal tersebut dalam peran sysadmin atau db_owner.

Membuat Audit Server dan Spesifikasi Audit Server

Membuat Audit Server dan Spesifikasi Audit Database

Lihat Log Audit SQL Server

Tulis Kejadian Audit SQL Server ke Log Keamanan

Properti Server (Halaman Keamanan)
Menjelaskan cara mengaktifkan audit masuk untuk SQL Server. Catatan audit disimpan di log aplikasi Windows.

Opsi Konfigurasi Server mode audit c2
Menjelaskan mode audit kepatuhan keamanan C2 di SQL Server.

Kategori Peristiwa Audit Keamanan (Profiler SQL Server)
Menjelaskan peristiwa audit yang dapat Anda gunakan di SQL Server Profiler. Untuk informasi selengkapnya, lihat SQL Server Profiler.

Jejak SQL
Menjelaskan bagaimana SQL Trace dapat digunakan dari dalam aplikasi Anda sendiri untuk membuat jejak secara manual, alih-alih menggunakan SQL Server Profiler.

Pemicu DDL
Menjelaskan cara menggunakan pemicu Data Definition Language (DDL) untuk melacak perubahan pada database Anda.

Microsoft TechNet: SQL Server TechCenter: Keamanan dan Perlindungan SQL Server 2005
Menyediakan informasi terbaru tentang keamanan SQL Server.

Lihat Juga

Grup dan Tindakan Tindakan Audit SQL Server
Catatan Audit SQL Server