Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
Azure 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 terjadi setiap kali tindakan yang dapat diaudit ditemui.
Semua edisi SQL Server mendukung audit tingkat server. Di SQL Server 2016 (13.x) dengan Paket Layanan 1 dan versi yang lebih baru, semua edisi mendukung audit tingkat database. Sebelum itu, audit tingkat database terbatas pada edisi Enterprise, Developer, dan Evaluation. Untuk informasi selengkapnya, lihat Edisi dan fitur yang didukung SQL Server 2016.
Catatan
Artikel ini berlaku untuk SQL Server. Untuk SQL Database, lihat Audit untuk Azure SQL Database dan Azure Synapse Analytics.
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 Gambaran Umum 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 artikel Grup tindakan dan tindakan Audit SQL Server.
Catatan
Karena kendala performa, kami tidak mengaudit tempdb
dan tabel sementara. Meskipun grup tindakan "batch completed" menangkap pernyataan terhadap tabel sementara, grup tersebut mungkin tidak mengisi nama objek dengan benar. Namun, tabel sumber selalu diaudit, memastikan bahwa semua sisipan dari tabel sumber ke tabel sementara direkam.
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 artikel kelompok tindakan audit dan tindakan dalam Audit SQL Server.
Sasaran
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 lebih banyak rekaman.
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 Pemantau 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 CONTROL SERVER
izin dapat menggunakan Mesin Database untuk mengakses file audit. Untuk merekam setiap pengguna yang membaca file audit, tentukan audit pada master.sys.fn_get_audit_file
. Ini mencatat login yang memiliki izin CONTROL SERVER
dan telah mengakses file audit melalui SQL Server.
Jika Administrator Audit menyalin file ke lokasi lain (untuk tujuan arsip, dan sebagainya), daftar kontrol akses (ACL) di 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 ekstra 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, sasaran menerima catatan.
Anda dapat membaca log peristiwa Windows dengan menggunakan utilitas Pemantau 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.
- Buat audit dan tentukan target.
- Buat spesifikasi audit server atau spesifikasi audit database yang memetakan ke audit. Aktifkan spesifikasi audit.
- Aktifkan audit.
- Baca peristiwa audit dengan menggunakan Penampil Peristiwa Windows, Penampil File Log, atau
fn_get_audit_file
fungsi .
Untuk informasi selengkapnya, lihat Membuat Audit Server dan Spesifikasi Audit Server dan Membuat audit server dan spesifikasi audit database.
Pertimbangan
Jika terjadi kegagalan selama inisiasi audit, server tidak akan mulai. Dalam hal ini, server dapat dimulai dengan menggunakan -f
opsi di baris perintah.
Ketika kegagalan audit menyebabkan server dimatikan atau tidak dimulai karena ON_FAILURE = SHUTDOWN
ditentukan untuk audit, MSG_AUDIT_FORCED_SHUTDOWN
peristiwa ditulis ke log. Karena pematian terjadi pada pertemuan pertama pengaturan ini, peristiwa ditulis satu kali. Kejadian ini ditulis setelah pesan kegagalan untuk audit yang menyebabkan pematian. Administrator dapat melewati penonaktifan akibat audit dengan memulai SQL Server dalam modus pengguna tunggal menggunakan -m
parameter. Jika Anda memulai dalam mode Pengguna Tunggal, Anda akan menurunkan audit apa pun di mana ON_FAILURE = SHUTDOWN
ditentukan untuk dijalankan dalam sesi itu sebagai ON_FAILURE = CONTINUE
. Ketika SQL Server dimulai dengan flag -m
, pesan MSG_AUDIT_SHUTDOWN_BYPASSED
dicatat ke dalam log kesalahan.
Untuk informasi selengkapnya tentang opsi startup layanan, lihat Opsi pengaktifan Layanan Mesin Database.
Menambahkan basis data dengan audit yang telah didefinisikan
Melampirkan database yang memiliki spesifikasi audit dan menentukan GUID yang tidak ada di server, menyebabkan spesifikasi audit terputus. Karena audit dengan GUID yang cocok tidak ada di instans server, tidak ada peristiwa audit yang direkam. Untuk memperbaiki situasi ini, gunakan ALTER DATABASE AUDIT SPECIFICATION
untuk perintah menyambungkan spesifikasi audit terpisah ke audit server yang ada. Atau, gunakan CREATE SERVER AUDIT
perintah 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 merekam peristiwa audit.
Pencerminan database dan Audit SQL Server
Basis data yang memiliki spesifikasi audit yang telah ditentukan dan menggunakan pencerminan basis data akan menyertakan spesifikasi audit tersebut. 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-from-source-server-audit>
.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 (Ubah Otorisasi) | 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 menghapus Audit Server atau Spesifikasi Audit Server, prinsipal server memerlukan izin ALTER ANY SERVER AUDIT
atau CONTROL SERVER
. Untuk membuat, mengubah, atau menghapus Spesifikasi Audit Database, prinsipal database memerlukan izin ALTER ANY DATABASE AUDIT
atau izin ALTER
atau izin CONTROL
pada database. Selain itu, prinsipal harus memiliki izin untuk menyambungkan ke database, atau ALTER ANY SERVER AUDIT
izin atau CONTROL SERVER
izin.
Izin VIEW ANY DEFINITION
memberikan akses untuk melihat tampilan audit tingkat server dan VIEW DEFINITION
akses untuk melihat tampilan audit tingkat database. Pembatalan izin ini menghalangi kemampuan untuk berkemampuan 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.
Perhatian
Prinsipal dalam peran sysadmin dapat mengubah komponen audit apa pun, dan prinsipal dalam peran db_owner dapat mengubah spesifikasi audit dalam database. Audit SQL Server memvalidasi bahwa sebuah login yang membuat atau mengubah spesifikasi audit memiliki setidaknya ALTER ANY DATABASE AUDIT
izin. Namun, tidak ada validasi saat Anda melampirkan database. Anda harus menganggap semua Spesifikasi Audit Database memiliki tingkat kepercayaan yang sama dengan prinsipal tersebut yang memegang peran sysadmin atau db_owner.
Tugas terkait
- Membuat Audit Server dan Spesifikasi Audit Server
- Membuat audit server dan spesifikasi audit database
- Lihat Log Audit SQL Server
- Menulis peristiwa Audit SQL Server ke log Keamanan
Artikel yang terkait erat dengan audit
Artikel | Deskripsi |
---|---|
Properti Server - Halaman Keamanan | Menjelaskan cara mengaktifkan audit masuk untuk SQL Server. Catatan audit disimpan di log aplikasi Windows. |
Server konfigurasi: 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. |