Server Blob Auditing Policies - Create Or Update

Membuat atau memperbarui kebijakan audit blob server.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/auditingSettings/default?api-version=2021-11-01

Parameter URI

Nama Dalam Diperlukan Jenis Deskripsi
blobAuditingPolicyName
path True

blobAuditingPolicyName

Nama kebijakan audit blob.

resourceGroupName
path True

string

Nama grup sumber daya yang berisi sumber daya. Anda dapat memperoleh nilai ini dari Azure Resource Manager API atau portal.

serverName
path True

string

Nama server.

subscriptionId
path True

string

ID langganan yang mengidentifikasi langganan Azure.

api-version
query True

string

Versi API yang digunakan untuk permintaan.

Isi Permintaan

Nama Diperlukan Jenis Deskripsi
properties.state True

BlobAuditingPolicyState

Menentukan status audit. Jika status Diaktifkan, storageEndpoint atau isAzureMonitorTargetEnabled diperlukan.

properties.auditActionsAndGroups

string[]

Menentukan Actions-Groups dan Tindakan untuk diaudit.

Kumpulan grup tindakan yang direkomendasikan untuk digunakan adalah kombinasi berikut - ini akan mengaudit semua kueri dan prosedur tersimpan yang dijalankan terhadap database, serta login yang berhasil dan gagal:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Kombinasi di atas ini juga merupakan set yang dikonfigurasi secara default saat mengaktifkan audit dari portal Azure.

Grup tindakan yang didukung untuk diaudit adalah (catatan: pilih hanya grup tertentu yang mencakup kebutuhan audit Anda. Menggunakan grup yang tidak perlu dapat menyebabkan jumlah catatan audit yang sangat besar):

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP BACKUP_RESTORE_GROUP DATABASE_LOGOUT_GROUP DATABASE_OBJECT_CHANGE_GROUP DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP DATABASE_OBJECT_PERMISSION_CHANGE_GROUP DATABASE_OPERATION_GROUP DATABASE_PERMISSION_CHANGE_GROUP DATABASE_PRINCIPAL_CHANGE_GROUP DATABASE_PRINCIPAL_IMPERSONATION_GROUP DATABASE_ROLE_MEMBER_CHANGE_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP SCHEMA_OBJECT_ACCESS_GROUP SCHEMA_OBJECT_CHANGE_GROUP SCHEMA_OBJECT_ OWNERSHIP_CHANGE_GROUP SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP USER_CHANGE_PASSWORD_GROUP BATCH_STARTED_GROUP BATCH_COMPLETED_GROUP DBCC_GROUP DATABASE_OWNERSHIP_CHANGE_GROUP DATABASE_CHANGE_GROUP LEDGER_OPERATION_GROUP

Ini adalah grup yang mencakup semua pernyataan sql dan prosedur tersimpan yang dijalankan terhadap database, dan tidak boleh digunakan dalam kombinasi dengan grup lain karena ini akan menghasilkan log audit duplikat.

Untuk informasi selengkapnya, lihat Grup Tindakan Audit Tingkat Database.

Untuk Kebijakan audit database, Tindakan tertentu juga dapat ditentukan (perhatikan bahwa Tindakan tidak dapat ditentukan untuk kebijakan audit Server). Tindakan yang didukung untuk audit adalah: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

Formulir umum untuk menentukan tindakan yang akan diaudit adalah: {action} ON {object} BY {principal}

Perhatikan bahwa dalam format di atas dapat merujuk ke objek seperti tabel, tampilan, atau prosedur tersimpan, atau seluruh database atau skema. Untuk kasus terakhir, formulir DATABASE::{db_name} dan SKEMA::{schema_name} masing-masing digunakan.

Misalnya: PILIH di dbo.myTable oleh SELECT publik di DATABASE::myDatabase oleh SELECT publik di SCHEMA::mySchema menurut publik

Untuk informasi selengkapnya, lihat Tindakan Audit Tingkat Database

properties.isAzureMonitorTargetEnabled

boolean

Menentukan apakah peristiwa audit dikirim ke Azure Monitor. Untuk mengirim peristiwa ke Azure Monitor, tentukan 'State' sebagai 'Enabled' dan 'IsAzureMonitorTargetEnabled' sebagai true.

Saat menggunakan REST API untuk mengonfigurasi audit, Pengaturan Diagnostik dengan kategori log diagnostik 'SQLSecurityAuditEvents' pada database juga harus dibuat. Perhatikan bahwa untuk audit tingkat server, Anda harus menggunakan database 'master' sebagai {databaseName}.

Format URI Pengaturan Diagnostik: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Untuk informasi selengkapnya, lihat Rest API Pengaturan Diagnostik atau PowerShell Pengaturan Diagnostik

properties.isDevopsAuditEnabled

boolean

Menentukan status audit devops. Jika status Diaktifkan, log devops akan dikirim ke Azure Monitor. Untuk mengirim peristiwa ke Azure Monitor, tentukan 'State' sebagai 'Enabled', 'IsAzureMonitorTargetEnabled' sebagai true dan 'IsDevopsAuditEnabled' sebagai true

Saat menggunakan REST API untuk mengonfigurasi audit, Pengaturan Diagnostik dengan kategori log diagnostik 'DevOpsOperationsAudit' pada database master juga harus dibuat.

Format URI Pengaturan Diagnostik: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Untuk informasi selengkapnya, lihat Rest API Pengaturan Diagnostik atau PowerShell Pengaturan Diagnostik

properties.isManagedIdentityInUse

boolean

Menentukan apakah Identitas Terkelola digunakan untuk mengakses penyimpanan blob

properties.isStorageSecondaryKeyInUse

boolean

Menentukan apakah nilai storageAccountAccessKey adalah kunci sekunder penyimpanan.

properties.queueDelayMs

integer

Menentukan jumlah waktu dalam milidetik yang dapat berlalu sebelum tindakan audit dipaksa untuk diproses. Nilai minimum default adalah 1000 (1 detik). Maksimum adalah 2.147.483.647.

properties.retentionDays

integer

Menentukan jumlah hari untuk disimpan dalam log audit di akun penyimpanan.

properties.storageAccountAccessKey

string

Menentukan kunci pengidentifikasi akun penyimpanan audit. Jika status Diaktifkan dan storageEndpoint ditentukan, tidak menentukan storageAccountAccessKey akan menggunakan identitas terkelola yang ditetapkan sistem server SQL untuk mengakses penyimpanan. Prasyarat untuk menggunakan autentikasi identitas terkelola:

  1. Tetapkan SQL Server identitas terkelola yang ditetapkan sistem di Azure Active Directory (AAD).
  2. Berikan akses identitas SQL Server ke akun penyimpanan dengan menambahkan peran RBAC 'Kontributor Data Blob Penyimpanan' ke identitas server. Untuk informasi selengkapnya, lihat Mengaudit ke penyimpanan menggunakan autentikasi Identitas Terkelola
properties.storageAccountSubscriptionId

string

Menentukan Id langganan penyimpanan blob.

properties.storageEndpoint

string

Menentukan titik akhir penyimpanan blob (misalnya https://MyAccount.blob.core.windows.net). Jika status Diaktifkan, storageEndpoint atau isAzureMonitorTargetEnabled diperlukan.

Respons

Nama Jenis Deskripsi
200 OK

ServerBlobAuditingPolicy

Berhasil memperbarui pengaturan audit.

202 Accepted

Memperbarui pengaturan audit sedang berlangsung.

Other Status Codes

Respons Kesalahan: ***

  • 400 InvalidServerBlobAuditingPolicyCreateRequest - Permintaan kebijakan audit blob server buat tidak ada atau tidak memiliki objek properti.

  • 400 InvalidBlobAuditActionsAndGroups - Tindakan audit atau grup tindakan tidak valid.

  • 400 DataSecurityInvalidUserSuppliedParameter - Nilai parameter yang tidak valid disediakan oleh klien.

  • 400 BlobAuditingInvalidStorageAccountCredentials - Akun penyimpanan atau kunci akses yang disediakan tidak valid.

  • 400 InvalidBlobAuditActionsAndGroups - Tindakan audit atau grup tindakan tidak valid.

  • 400 InsufficientDiskSpaceForAuditing - Ruang disk tidak memadai untuk menyimpan metadata audit dalam database

  • 400 InvalidBlobAuditActions - Tindakan audit tidak valid

  • 404 SubscriptionDoesNotHaveServer - Server yang diminta tidak ditemukan

  • 404 ServerNotInSubscriptionResourceGroup - Server yang ditentukan tidak ada di grup sumber daya dan langganan yang ditentukan.

  • 404 OperationIdNotFound - Operasi dengan Id tidak ada.

  • 409 ServerBlobAuditingPolicyInProgress - Mengatur audit blob server sudah berlangsung.

  • 409 OperationCancelled - Operasi telah dibatalkan oleh pengguna.

  • 409 OperationInterrupted - Operasi pada sumber daya tidak dapat diselesaikan karena terganggu oleh operasi lain pada sumber daya yang sama.

  • 429 SubscriptionTooManyCreateUpdateRequests - Permintaan di luar permintaan maks yang dapat diproses oleh sumber daya yang tersedia.

  • 429 SubscriptionTooManyRequests - Permintaan di luar permintaan maks yang dapat diproses oleh sumber daya yang tersedia.

  • 500 OperationTimedOut - Waktu operasi habis dan secara otomatis digulung balik. Silakan coba lagi operasi ini.

  • 503 TooManyRequests - Permintaan di luar permintaan maks yang dapat diproses oleh sumber daya yang tersedia.

Contoh

Update a server's blob auditing policy with all parameters
Update a server's blob auditing policy with minimal parameters

Update a server's blob auditing policy with all parameters

Sample Request

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/auditingSettings/default?api-version=2021-11-01

{
  "properties": {
    "state": "Enabled",
    "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 6,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "isAzureMonitorTargetEnabled": true
  }
}

Sample Response

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/auditingSettings/default",
  "name": "default",
  "type": "Microsoft.Sql/servers/auditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 6,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "isAzureMonitorTargetEnabled": true
  }
}

Update a server's blob auditing policy with minimal parameters

Sample Request

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/auditingSettings/default?api-version=2021-11-01

{
  "properties": {
    "state": "Enabled",
    "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
    "storageEndpoint": "https://mystorage.blob.core.windows.net"
  }
}

Sample Response

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/auditingSettings/default",
  "name": "default",
  "type": "Microsoft.Sql/servers/auditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 6,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ]
  }
}

Definisi

Nama Deskripsi
blobAuditingPolicyName

Nama kebijakan audit blob.

BlobAuditingPolicyState

Menentukan status audit. Jika status Diaktifkan, storageEndpoint atau isAzureMonitorTargetEnabled diperlukan.

ServerBlobAuditingPolicy

Kebijakan audit blob server.

blobAuditingPolicyName

Nama kebijakan audit blob.

Nama Jenis Deskripsi
default

string

BlobAuditingPolicyState

Menentukan status audit. Jika status Diaktifkan, storageEndpoint atau isAzureMonitorTargetEnabled diperlukan.

Nama Jenis Deskripsi
Disabled

string

Enabled

string

ServerBlobAuditingPolicy

Kebijakan audit blob server.

Nama Jenis Deskripsi
id

string

ID Sumber Daya.

name

string

Nama sumber daya.

properties.auditActionsAndGroups

string[]

Menentukan Actions-Groups dan Tindakan untuk diaudit.

Kumpulan grup tindakan yang direkomendasikan untuk digunakan adalah kombinasi berikut - ini akan mengaudit semua kueri dan prosedur tersimpan yang dijalankan terhadap database, serta login yang berhasil dan gagal:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Kombinasi di atas ini juga merupakan set yang dikonfigurasi secara default saat mengaktifkan audit dari portal Azure.

Grup tindakan yang didukung untuk diaudit adalah (catatan: pilih hanya grup tertentu yang mencakup kebutuhan audit Anda. Menggunakan grup yang tidak perlu dapat menyebabkan jumlah catatan audit yang sangat besar):

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP BACKUP_RESTORE_GROUP DATABASE_LOGOUT_GROUP DATABASE_OBJECT_CHANGE_GROUP DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP DATABASE_OBJECT_PERMISSION_CHANGE_GROUP DATABASE_OPERATION_GROUP DATABASE_PERMISSION_CHANGE_GROUP DATABASE_PRINCIPAL_CHANGE_GROUP DATABASE_PRINCIPAL_IMPERSONATION_GROUP DATABASE_ROLE_MEMBER_CHANGE_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP SCHEMA_OBJECT_ACCESS_GROUP SCHEMA_OBJECT_CHANGE_GROUP SCHEMA_OBJECT_ OWNERSHIP_CHANGE_GROUP SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP USER_CHANGE_PASSWORD_GROUP BATCH_STARTED_GROUP BATCH_COMPLETED_GROUP DBCC_GROUP DATABASE_OWNERSHIP_CHANGE_GROUP DATABASE_CHANGE_GROUP LEDGER_OPERATION_GROUP

Ini adalah grup yang mencakup semua pernyataan sql dan prosedur tersimpan yang dijalankan terhadap database, dan tidak boleh digunakan dalam kombinasi dengan grup lain karena ini akan menghasilkan log audit duplikat.

Untuk informasi selengkapnya, lihat Grup Tindakan Audit Tingkat Database.

Untuk Kebijakan audit database, Tindakan tertentu juga dapat ditentukan (perhatikan bahwa Tindakan tidak dapat ditentukan untuk kebijakan audit Server). Tindakan yang didukung untuk audit adalah: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

Formulir umum untuk menentukan tindakan yang akan diaudit adalah: {action} ON {object} BY {principal}

Perhatikan bahwa dalam format di atas dapat merujuk ke objek seperti tabel, tampilan, atau prosedur tersimpan, atau seluruh database atau skema. Untuk kasus terakhir, formulir DATABASE::{db_name} dan SKEMA::{schema_name} masing-masing digunakan.

Misalnya: PILIH di dbo.myTable oleh SELECT publik di DATABASE::myDatabase oleh SELECT publik di SCHEMA::mySchema menurut publik

Untuk informasi selengkapnya, lihat Tindakan Audit Tingkat Database

properties.isAzureMonitorTargetEnabled

boolean

Menentukan apakah peristiwa audit dikirim ke Azure Monitor. Untuk mengirim peristiwa ke Azure Monitor, tentukan 'State' sebagai 'Enabled' dan 'IsAzureMonitorTargetEnabled' sebagai true.

Saat menggunakan REST API untuk mengonfigurasi audit, Pengaturan Diagnostik dengan kategori log diagnostik 'SQLSecurityAuditEvents' pada database juga harus dibuat. Perhatikan bahwa untuk audit tingkat server, Anda harus menggunakan database 'master' sebagai {databaseName}.

Format URI Pengaturan Diagnostik: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Untuk informasi selengkapnya, lihat Rest API Pengaturan Diagnostik atau PowerShell Pengaturan Diagnostik

properties.isDevopsAuditEnabled

boolean

Menentukan status audit devops. Jika status Diaktifkan, log devops akan dikirim ke Azure Monitor. Untuk mengirim peristiwa ke Azure Monitor, tentukan 'State' sebagai 'Enabled', 'IsAzureMonitorTargetEnabled' sebagai true dan 'IsDevopsAuditEnabled' sebagai true

Saat menggunakan REST API untuk mengonfigurasi audit, Pengaturan Diagnostik dengan kategori log diagnostik 'DevOpsOperationsAudit' pada database master juga harus dibuat.

Format URI Pengaturan Diagnostik: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Untuk informasi selengkapnya, lihat Rest API Pengaturan Diagnostik atau PowerShell Pengaturan Diagnostik

properties.isManagedIdentityInUse

boolean

Menentukan apakah Identitas Terkelola digunakan untuk mengakses penyimpanan blob

properties.isStorageSecondaryKeyInUse

boolean

Menentukan apakah nilai storageAccountAccessKey adalah kunci sekunder penyimpanan.

properties.queueDelayMs

integer

Menentukan jumlah waktu dalam milidetik yang dapat berlalu sebelum tindakan audit dipaksa untuk diproses. Nilai minimum default adalah 1000 (1 detik). Maksimum adalah 2.147.483.647.

properties.retentionDays

integer

Menentukan jumlah hari untuk disimpan dalam log audit di akun penyimpanan.

properties.state

BlobAuditingPolicyState

Menentukan status audit. Jika status Diaktifkan, storageEndpoint atau isAzureMonitorTargetEnabled diperlukan.

properties.storageAccountAccessKey

string

Menentukan kunci pengidentifikasi akun penyimpanan audit. Jika status Diaktifkan dan storageEndpoint ditentukan, tidak menentukan storageAccountAccessKey akan menggunakan identitas terkelola yang ditetapkan sistem server SQL untuk mengakses penyimpanan. Prasyarat untuk menggunakan autentikasi identitas terkelola:

  1. Tetapkan SQL Server identitas terkelola yang ditetapkan sistem di Azure Active Directory (AAD).
  2. Berikan akses identitas SQL Server ke akun penyimpanan dengan menambahkan peran RBAC 'Kontributor Data Blob Penyimpanan' ke identitas server. Untuk informasi selengkapnya, lihat Mengaudit ke penyimpanan menggunakan autentikasi Identitas Terkelola
properties.storageAccountSubscriptionId

string

Menentukan Id langganan penyimpanan blob.

properties.storageEndpoint

string

Menentukan titik akhir penyimpanan blob (misalnya https://MyAccount.blob.core.windows.net). Jika status Diaktifkan, storageEndpoint atau isAzureMonitorTargetEnabled diperlukan.

type

string

Jenis sumber daya