Audit database SQL Server

Halaman ini menjelaskan pengauditan database di Cloud SQL menggunakan fungsi Audit SQL Server.

Ringkasan

Pada Cloud SQL, kemampuan Audit Server SQL meliputi hal berikut:

  • Membuat spesifikasi audit server
  • Melacak dan mencatat peristiwa tingkat server dan database ke dalam log

Untuk mengetahui informasi tambahan tentang kemampuan Audit SQL Server, lihat Audit SQL Server (Database Engine).

Sebelum memulai

Sebelum mengaktifkan audit database, tinjau prasyarat pada bagian ini.

Bucket Cloud Storage untuk file audit

File audit (log audit) diupload ke lokasi bucket Cloud Storage. Dengan demikian, Anda mungkin perlu membuat bucket yang dimiliki oleh akun Google Cloud Anda.

Atau, Anda dapat menggunakan lokasi bucket yang dimiliki oleh akun lain. Saat mengaktifkan audit, jika Anda memiliki izin yang diperlukan, makaroles/storage.objectAdmin peran diberikan secara otomatis untuk mengupload audit ke lokasi bucket akun layanan yang diberikan. Jika tidak memiliki izin yang diperlukan, Anda harus memberikannya untuk akun layanan nanti.

Pengguna yang valid untuk mengaktifkan audit

Untuk mengaktifkan dan membuat spesifikasi audit penggunasqlserver default harus tersedia. Saat Anda membuat instance Cloud SQL untuk SQL Server, pengguna sqlserver default telah dibuat untuk Anda.

Mengaktifkan audit

Saat Anda mengaktifkan audit, diperlukan lokasi Cloud Storage. Hal berikut bersifat opsional:

  • Periode retensi log pada instance
  • Interval upload (frekuensi upload)

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Overview klik nama instance.
  3. Klik Edit.
  4. Pada bagian Customize your instance, klik Flags and parameter.
  5. Centang kotak di samping Aktifkan audit SQL Server.
  6. Tentukan bucket Cloud Storage sebagai lokasi upload file audit.
  7. Klik Advanced Options.
  8. Atau, tentukan jumlah hari untuk retensi log (1 hingga 7 hari; 7 hari adalah defaultnya).
  9. Atau, tentukan frekuensi upload log (file audit), dalam menit (1-720 menit; default-nya adalah 10 menit).
  10. Klik Simpan untuk menerapkan perubahan.

gcloud

Berikut perintah mengaktifkan audit:

gcloud sql instances patch INSTANCE_NAME --audit-bucket-path=gs://my-bucket --audit-retention-interval=24h --audit-upload-interval=10m

Tabel berikut meringkas parameter gcloud operasi ini:

Parameter Deskripsi Nilai yang diizinkan Nilai default
--audit-bucket-path Wajib. Lokasi file audit diupload yakni bucket Cloud Storage. Kosong jika audit dinonaktifkan. Jika tidak, jalur bucket yang dimulai dengan: gs:// Kosong, karena secara default audit dinonaktifkan.
--audit-retention-interval Opsional. Jumlah hari untuk retensi log audit pada disk. 1 sampai 7 hari. Hanya hari yang diizinkan. 7 hari.
--audit-upload-interval Opsional. Seberapa sering mengupload log audit (file audit). 1-720 menit. 10 menit.

REST v1

Dengan menggunakan REST API, Anda dapat mengaktifkan pengauditan untuk instance. Seperti yang ditunjukkan pada prototipe permintaan berikut, Anda dapat menentukan bucket Cloud Storage, jumlah hari untuk retensi file audit dan, frekuensi upload file audit. Hanya lokasi bucket yang diperlukan. Untuk informasi selengkapnya, lihat SqlServerAuditConfig:

{
   "databaseVersion":"database-version",
   "name":"instance-id",
   "region":"region",
   "rootPassword":"password",
   "settings":{
      "tier":"machine-type",
      "sqlServerAuditConfig":{
         "bucket":"gs://mybucket",
         "retentionInterval":"24h",
         "uploadInterval":"10m"
      }
   }
}

REST v1beta4

Dengan menggunakan REST API, Anda dapat mengaktifkan pengauditan untuk instance. Seperti yang ditunjukkan pada prototipe permintaan berikut, Anda dapat menentukan bucket Cloud Storage, jumlah hari untuk retensi file audit dan, frekuensi upload file audit. Hanya lokasi bucket yang diperlukan. Untuk informasi selengkapnya, lihat SqlServerAuditConfig:

{
   "databaseVersion":"database-version",
   "name":"instance-id",
   "region":"region",
   "rootPassword":"password",
   "settings":{
      "tier":"machine-type",
      "sqlServerAuditConfig":{
         "bucket":"gs://mybucket",
         "retentionInterval":"24h",
         "uploadInterval":"10m"
      }
   }
}

Menonaktifkan audit

Bagian ini berisi opsi untuk menonaktifkan audit. Jika Anda menonaktifkan audit, semua file audit, termasuk yang belum diupload, akan dihapus dari instance. Selain itu, semua audit server dinonaktifkan dan harus diaktifkan kembali jika audit ingin dilanjutkan. Log audit yang diupload ke bucket Cloud Storage mungkin masih ada, tergantung pada setelan retensi Anda untuk bucket.

Berikut adalah opsi untuk menonaktifkan audit.

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Overview klik nama instance.
  3. Klik Edit.
  4. Pada bagian Customize your instance, klik Flags and parameter.
  5. Hapus centang pada kotak di samping Enable SQL Server audit.
  6. Klik Simpan untuk menerapkan perubahan.

gcloud

Perintah yang menghilangkan nilai untuk parameter berikut --audit-bucket-path akan, menonaktifkan audit:

gcloud sql instances patch INSTANCE_NAME --audit-bucket-path=

REST v1

Hal yang menghilangkan kolom objek sqlServerAuditConfig berikut merupakan prototipe permintaan untuk menonaktifkan audit:

{
   "databaseVersion":"database-version",
   "name":"instance-id",
   "region":"region",
   "rootPassword":"password",
   "settings":{
      "tier":"machine-type",
      "sqlServerAuditConfig":{
      }
   }
}

REST v1beta4

Hal yang menghilangkan kolom objek sqlServerAuditConfig berikut merupakan prototipe permintaan untuk menonaktifkan audit:

{
   "databaseVersion":"database-version",
   "name":"instance-id",
   "region":"region",
   "rootPassword":"password",
   "settings":{
      "tier":"machine-type",
      "sqlServerAuditConfig":{
      }
   }
}

Mengupload otomatis file audit

Setelah Anda mengaktifkan audit, file audit yang dihasilkan akan diupload secara otomatis ke bucket Cloud Storage yang telah Anda tentukan.

File audit yang dihasilkan juga akan disimpan pada instance tersebut hingga periode retensi data yang dikonfigurasi (interval) berakhir. Setelah periode tersebut, file audit akan dihapus secara permanen, bahkan file yang tidak dapat diupload.

Membuat audit server

Setelah Anda mengaktifkan audit, pengguna sqlserver default memiliki izin untuk membuat, mengubah, dan menghapus audit server.

Gunakan perintah BUAT SERVER AUDIT untuk menentukan audit server baru. Anda juga dapat menggunakan antarmuka pengguna SQL Server Management Studio (SSMS) untuk membuat audit server.

Kategori parameter berikut diterapkan untuk semua audit server:

Kategori parameter Nilai yang diizinkan
Saat log audit gagal Lanjutkan atau gagal
Tujuan audit File
Jalur /var/opt/mssql/audit
Ukuran file maksimal 2-50 MB
File rollover maksimum Harus: tidak dikonfigurasi
Jumlah file maksimum Harus: tidak dikonfigurasi
Mencadangkan kapasitas disk Nonaktif

Membaca audit

Membaca audit dari instance

Untuk mengambil data dari file audit yang dibuat oleh audit server, Anda dapat menggunakan the following stored procedure: msdb.dbo.gcloudsql_fn_get_audit_file. Prosedur msdb.dbo.gcloudsql_fn_get_audit_file menerima parameter yang sama dengan sys.fn_get_audit_file fungsi.

Oleh karena itu, untuk mengetahui informasi tentang penggunaan prosedur tersimpan tersebut, lihat sys.fn_get_audit_file.

Berikut adalah contoh penggunaan msdb.dbo.gcloudsql_fn_get_audit_file prosedur untuk mengambil data audit:

SELECT event_time, statement FROM msdb.dbo.gcloudsql_fn_get_audit_file('/var/opt/mssql/audit/*', NULL, NULL) WHERE statement LIKE '%INSERT%'

Membaca audit dari bucket

Untuk membaca audit melalui bucket Cloud Storage, Anda dapat mendownload file dari bucket ke instance SQL Server. Instance SQL Server tersebut dapat berupa:

  • Instance Compute Engine Windows
  • Instance Compute Engine Linux
  • Jenis instance lain yang menjalankan SQL Server

File audit dari bucket harus ditransfer ke lokasi yang dapat diakses oleh instance tersebut, seperti disk lokalnya. Kemudian, untuk menampilkan informasi dari file audit, jalankan sys.fn_get_audit_file fungsi menggunakan peran anggota server admin tetap. Misalnya, dari instance Windows, jika Anda mentransfer file audit ke D:\Audit, Anda dapat menggunakan perintah yang mirip dengan berikut ini:

SELECT event_time, statement FROM sys.fn_get_audit_file('D:\Audit\*.*', NULL, NULL) WHERE statement LIKE '%INSERT%'

Metrik pemantauan

Anda dapat memantau operasi terkait audit sebagai bagian dari Metrik Cloud SQLyang tersedia melalui Metrics Explorer:

  • database/sqlserver/audits_upload_count. Metrik ini menunjukkan total upaya upload file audit, baik yang berhasil maupun yang gagal. Periksa metrik ini untuk memantau apakah upload telah berhasil.
  • database/sqlserver/audits_size. Metrik ini menunjukkan jumlah ruang disk yang digunakan oleh file audit yang disimpan di instance pada saat pengukuran. Metrik ini memberikan ukuran total file audit pada instance dalam satuan bytes.

Praktik terbaik

  • Untuk menghindari transfer file berukuran besar di berbagai region, pertimbangkan:
    • Membuat bucket Cloud Storage multi-regional, atau
    • Menyiapkan bucket Cloud Storage tujuan di region yang sama dengan instance
  • Sebelum menggunakan fungsi Audit SQL Server, pertimbangkan untuk mengaktifkan peningkatan penyimpanan otomatis. Audit file bergantung pada ukuran total dan interval retensina. Hal tersebut mungkin memerlukan ruang disk yang signifikan.
  • Setelah mengaktifkan audit, pastikan instance Anda dapat mengupload file audit ke bucket Cloud Storage. Jika pemohon yang menyiapkan audit tidak memiliki izin yang diperlukan untuk mengupload file ke bucket Cloud Storage, izin tidak akan diberikan secara otomatis.
  • Menyiapkan kebijakan pemberitahuan berbasis metrik untuk memberi tahu Anda tentang upaya upload yang gagal dan penggunaan disk yang berlebihan.
  • Agar tidak menyimpan terlalu banyak file audit dalam waktu yang terlalu lama, siapkan kebijakan retensi data untuk bucket Cloud Storage Anda.