Database Blob Auditing Policies - Create Or Update

Crea o aggiorna la politica di audit dei blob di un database.

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

Parametri dell'URI

Nome In Necessario Tipo Descrizione
blobAuditingPolicyName
path True

BlobAuditingPolicyName

Il nome della politica di audit del blob.

databaseName
path True

string

Nome del database.

resourceGroupName
path True

string

minLength: 1
maxLength: 90

Nome del gruppo di risorse. Il nome è insensibile alle maiuscole e minuscole.

serverName
path True

string

Il nome del server.

subscriptionId
path True

string (uuid)

ID della sottoscrizione di destinazione. Il valore deve essere un UUID.

api-version
query True

string

minLength: 1

Versione dell'API da usare per questa operazione.

Corpo della richiesta

Nome Necessario Tipo Descrizione
properties.state True

BlobAuditingPolicyState

Specifica lo stato del controllo. Se lo stato è Abilitato, sono necessari storageEndpoint o isAzureMonitorTargetEnabled.

properties.auditActionsAndGroups

string[]

Specifica il Actions-Groups e le azioni da controllare.

Il set consigliato di gruppi di azioni da usare è la combinazione seguente: in questo modo verranno controllate tutte le query e le stored procedure eseguite sul database, nonché gli accessi riusciti e non riusciti:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Questa combinazione sopra è anche l'insieme configurato di default quando si abilita l'audit dal portale Azure.

I gruppi di azioni supportati da controllare sono (nota: scegliere solo gruppi specifici che coprono le esigenze di controllo. L'uso di gruppi non necessari potrebbe causare grandi quantità di record di controllo:

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

Si tratta di gruppi che coprono tutte le istruzioni SQL e le stored procedure eseguite sul database e non devono essere usati in combinazione con altri gruppi, in quanto ciò comporterà la duplicazione dei log di controllo.

Per altre informazioni, vedere Database-Level Controlla gruppi di azioni.

Per i criteri di controllo del database, è anche possibile specificare azioni specifiche. Si noti che non è possibile specificare azioni per i criteri di controllo del server. Le azioni supportate da revisionare sono: SELEZIONA AGGIORNA INSERISCI ELIMINA ESEGUI RICEVI RIFERIMENTI

La forma generale per definire un'azione da auditare è: {azione} SU {oggetto} BY {principale}

Si noti che <oggetto> nel formato precedente può fare riferimento a un oggetto come una tabella, una vista o una stored procedure oppure un intero database o uno schema. Per questi ultimi casi, vengono usati rispettivamente i moduli DATABASE::{db_name} e SCHEMA::{schema_name} .

Ad esempio: SELECT su dbo.myTable da public SELECT su DATABASE::myDatabase da public SELECT su SCHEMA::mySchema da public

Per altre informazioni, vedere Database-Level Azioni di controllo

properties.isAzureMonitorTargetEnabled

boolean

Specifica se gli eventi di audit vengono inviati ad Monitoraggio di Azure. Per inviare gli eventi a Monitoraggio di Azure, specifica 'State' come 'Enabled' e 'IsAzureMonitorTargetEnabled' come veri.

Quando si usa l'API REST per configurare il controllo, è necessario creare anche le impostazioni di diagnostica con la categoria dei log di diagnostica "SQLSecurityAuditEvents" nel database. Si noti che per il controllo a livello di server è consigliabile usare il database 'master' come {databaseName}.

Impostazioni diagnostiche formato URI: 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

Per altre informazioni, vedere 'API REST delle impostazioni di diagnostica o Impostazioni di diagnostica di PowerShell

properties.isManagedIdentityInUse

boolean

Specifica se l'identità gestita viene usata per accedere all'archiviazione BLOB

properties.isStorageSecondaryKeyInUse

boolean

Specifica se il valore storageAccountAccessKey è la chiave secondaria dell'archiviazione.

properties.queueDelayMs

integer (int32)

Indica la quantità di tempo in millisecondi che può trascorrere prima che venga forzata l'elaborazione delle azioni di controllo. Il valore minimo predefinito è 1000 (1 secondo). Il valore massimo è 2.147.483.647.

properties.retentionDays

integer (int32)

Specifica il numero di giorni da mantenere nei log di controllo nell'account di archiviazione.

properties.storageAccountAccessKey

string (password)

Specifica la chiave di identificatore dell'account di archiviazione di controllo. Se lo stato è Abilitato e viene specificato storageEndpoint, non specificando storageAccountAccessKey verrà usata l'identità gestita assegnata dal sistema di SQL Server per accedere all'archiviazione. Prerequisiti per l'uso dell'autenticazione dell'identità gestita:

  1. Assegna a SQL Server un'identità gestita assegnata dal sistema in Azure Active Directory (AAD).
  2. Concedere l'identità di SQL Server accesso all'account di archiviazione aggiungendo il ruolo RBAC 'Storage Blob Data Contributor' all'identità del server. Per altre informazioni, vedere Auditing to storage using Managed Identity Authentication
properties.storageAccountSubscriptionId

string (uuid)

Specifica l'ID sottoscrizione dell'archiviazione BLOB.

properties.storageEndpoint

string

Specifica l'endpoint di archiviazione BLOB , ad esempio https://MyAccount.blob.core.windows.net. Se lo stato è Abilitato, è necessario storageEndpoint o isAzureMonitorTargetEnabled.

Risposte

Nome Tipo Descrizione
200 OK

DatabaseBlobAuditingPolicy

Risorsa 'DatabaseBlobAuditingPolicy' operativa di aggiornamento riuscita

201 Created

DatabaseBlobAuditingPolicy

Risorsa 'DatabaseBlobAuditingPolicy' crea l'operazione con successo

Other Status Codes

ErrorResponse

Risposta di errore imprevista.

Sicurezza

azure_auth

Azure Active Directory OAuth2 Flow.

Tipo: oauth2
Flow: implicit
URL di autorizzazione: https://login.microsoftonline.com/common/oauth2/authorize

Ambiti

Nome Descrizione
user_impersonation rappresentare l'account utente

Esempio

Create or update a database's azure monitor auditing policy with minimal parameters
Create or update a database's blob auditing policy with all parameters
Create or update a database's blob auditing policy with minimal parameters

Create or update a database's azure monitor auditing policy with minimal parameters

Esempio di richiesta

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

{
  "properties": {
    "isAzureMonitorTargetEnabled": true,
    "state": "Enabled"
  }
}

Risposta di esempio

{
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/auditingSettings",
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "kind": "V12",
  "properties": {
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "isAzureMonitorTargetEnabled": true,
    "retentionDays": 0,
    "state": "Enabled",
    "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000"
  }
}
{
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/auditingSettings",
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "kind": "V12",
  "properties": {
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "isAzureMonitorTargetEnabled": true,
    "retentionDays": 0,
    "state": "Enabled",
    "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000"
  }
}

Create or update a database's blob auditing policy with all parameters

Esempio di richiesta

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

{
  "properties": {
    "auditActionsAndGroups": [
      "DATABASE_LOGOUT_GROUP",
      "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
      "UPDATE on database::TestDatabaseName by public"
    ],
    "isAzureMonitorTargetEnabled": true,
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "retentionDays": 6,
    "state": "Enabled",
    "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "storageEndpoint": "https://mystorage.blob.core.windows.net"
  }
}

Risposta di esempio

{
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/auditingSettings",
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "kind": "V12",
  "properties": {
    "auditActionsAndGroups": [
      "DATABASE_LOGOUT_GROUP",
      "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
      "UPDATE on database::TestDatabaseName by public"
    ],
    "isAzureMonitorTargetEnabled": true,
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "retentionDays": 0,
    "state": "Enabled",
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "storageEndpoint": "https://mystorage.blob.core.windows.net"
  }
}
{
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/auditingSettings",
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "kind": "V12",
  "properties": {
    "auditActionsAndGroups": [
      "DATABASE_LOGOUT_GROUP",
      "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
      "UPDATE on database::TestDatabaseName by public"
    ],
    "isAzureMonitorTargetEnabled": true,
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "retentionDays": 0,
    "state": "Enabled",
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "storageEndpoint": "https://mystorage.blob.core.windows.net"
  }
}

Create or update a database's blob auditing policy with minimal parameters

Esempio di richiesta

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

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

Risposta di esempio

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

Definizioni

Nome Descrizione
BlobAuditingPolicyName
BlobAuditingPolicyState

Specifica lo stato del controllo. Se lo stato è Abilitato, sono necessari storageEndpoint o isAzureMonitorTargetEnabled.

createdByType

Tipo di identità che ha creato la risorsa.

DatabaseBlobAuditingPolicy

Criteri di controllo BLOB del database.

ErrorAdditionalInfo

Informazioni aggiuntive sull'errore di gestione delle risorse.

ErrorDetail

Dettagli dell'errore.

ErrorResponse

Risposta di errore

systemData

Metadati relativi alla creazione e all'ultima modifica della risorsa.

BlobAuditingPolicyName

Valore Descrizione
default

default

BlobAuditingPolicyState

Specifica lo stato del controllo. Se lo stato è Abilitato, sono necessari storageEndpoint o isAzureMonitorTargetEnabled.

Valore Descrizione
Enabled

Enabled

Disabled

Disattivato

createdByType

Tipo di identità che ha creato la risorsa.

Valore Descrizione
User
Application
ManagedIdentity
Key

DatabaseBlobAuditingPolicy

Criteri di controllo BLOB del database.

Nome Tipo Descrizione
id

string (arm-id)

ID risorsa completo per la risorsa. Ad esempio, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"

kind

string

Tipo di risorsa.

name

string

Nome della risorsa

properties.auditActionsAndGroups

string[]

Specifica il Actions-Groups e le azioni da controllare.

Il set consigliato di gruppi di azioni da usare è la combinazione seguente: in questo modo verranno controllate tutte le query e le stored procedure eseguite sul database, nonché gli accessi riusciti e non riusciti:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Questa combinazione sopra è anche l'insieme configurato di default quando si abilita l'audit dal portale Azure.

I gruppi di azioni supportati da controllare sono (nota: scegliere solo gruppi specifici che coprono le esigenze di controllo. L'uso di gruppi non necessari potrebbe causare grandi quantità di record di controllo:

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

Si tratta di gruppi che coprono tutte le istruzioni SQL e le stored procedure eseguite sul database e non devono essere usati in combinazione con altri gruppi, in quanto ciò comporterà la duplicazione dei log di controllo.

Per altre informazioni, vedere Database-Level Controlla gruppi di azioni.

Per i criteri di controllo del database, è anche possibile specificare azioni specifiche. Si noti che non è possibile specificare azioni per i criteri di controllo del server. Le azioni supportate da revisionare sono: SELEZIONA AGGIORNA INSERISCI ELIMINA ESEGUI RICEVI RIFERIMENTI

La forma generale per definire un'azione da auditare è: {azione} SU {oggetto} BY {principale}

Si noti che <oggetto> nel formato precedente può fare riferimento a un oggetto come una tabella, una vista o una stored procedure oppure un intero database o uno schema. Per questi ultimi casi, vengono usati rispettivamente i moduli DATABASE::{db_name} e SCHEMA::{schema_name} .

Ad esempio: SELECT su dbo.myTable da public SELECT su DATABASE::myDatabase da public SELECT su SCHEMA::mySchema da public

Per altre informazioni, vedere Database-Level Azioni di controllo

properties.isAzureMonitorTargetEnabled

boolean

Specifica se gli eventi di audit vengono inviati ad Monitoraggio di Azure. Per inviare gli eventi a Monitoraggio di Azure, specifica 'State' come 'Enabled' e 'IsAzureMonitorTargetEnabled' come veri.

Quando si usa l'API REST per configurare il controllo, è necessario creare anche le impostazioni di diagnostica con la categoria dei log di diagnostica "SQLSecurityAuditEvents" nel database. Si noti che per il controllo a livello di server è consigliabile usare il database 'master' come {databaseName}.

Impostazioni diagnostiche formato URI: 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

Per altre informazioni, vedere 'API REST delle impostazioni di diagnostica o Impostazioni di diagnostica di PowerShell

properties.isManagedIdentityInUse

boolean

Specifica se l'identità gestita viene usata per accedere all'archiviazione BLOB

properties.isStorageSecondaryKeyInUse

boolean

Specifica se il valore storageAccountAccessKey è la chiave secondaria dell'archiviazione.

properties.queueDelayMs

integer (int32)

Indica la quantità di tempo in millisecondi che può trascorrere prima che venga forzata l'elaborazione delle azioni di controllo. Il valore minimo predefinito è 1000 (1 secondo). Il valore massimo è 2.147.483.647.

properties.retentionDays

integer (int32)

Specifica il numero di giorni da mantenere nei log di controllo nell'account di archiviazione.

properties.state

BlobAuditingPolicyState

Specifica lo stato del controllo. Se lo stato è Abilitato, sono necessari storageEndpoint o isAzureMonitorTargetEnabled.

properties.storageAccountAccessKey

string (password)

Specifica la chiave di identificatore dell'account di archiviazione di controllo. Se lo stato è Abilitato e viene specificato storageEndpoint, non specificando storageAccountAccessKey verrà usata l'identità gestita assegnata dal sistema di SQL Server per accedere all'archiviazione. Prerequisiti per l'uso dell'autenticazione dell'identità gestita:

  1. Assegna a SQL Server un'identità gestita assegnata dal sistema in Azure Active Directory (AAD).
  2. Concedere l'identità di SQL Server accesso all'account di archiviazione aggiungendo il ruolo RBAC 'Storage Blob Data Contributor' all'identità del server. Per altre informazioni, vedere Auditing to storage using Managed Identity Authentication
properties.storageAccountSubscriptionId

string (uuid)

Specifica l'ID sottoscrizione dell'archiviazione BLOB.

properties.storageEndpoint

string

Specifica l'endpoint di archiviazione BLOB , ad esempio https://MyAccount.blob.core.windows.net. Se lo stato è Abilitato, è necessario storageEndpoint o isAzureMonitorTargetEnabled.

systemData

systemData

Azure Resource Manager metadati contenenti informazioni createBy e modifiedBy.

type

string

Tipo di risorsa. Ad esempio: "Microsoft. Compute/virtualMachines" oppure "Microsoft. Storage/storageAccounts"

ErrorAdditionalInfo

Informazioni aggiuntive sull'errore di gestione delle risorse.

Nome Tipo Descrizione
info

object

Informazioni aggiuntive.

type

string

Tipo di informazioni aggiuntive.

ErrorDetail

Dettagli dell'errore.

Nome Tipo Descrizione
additionalInfo

ErrorAdditionalInfo[]

Informazioni aggiuntive sull'errore.

code

string

Codice di errore.

details

ErrorDetail[]

Dettagli dell'errore.

message

string

Messaggio di errore.

target

string

Destinazione dell'errore.

ErrorResponse

Risposta di errore

Nome Tipo Descrizione
error

ErrorDetail

Oggetto error.

systemData

Metadati relativi alla creazione e all'ultima modifica della risorsa.

Nome Tipo Descrizione
createdAt

string (date-time)

Timestamp della creazione della risorsa (UTC).

createdBy

string

Identità che ha creato la risorsa.

createdByType

createdByType

Tipo di identità che ha creato la risorsa.

lastModifiedAt

string (date-time)

Il timestamp dell'ultima modifica della risorsa (UTC)

lastModifiedBy

string

Identità che ha modificato l'ultima volta la risorsa.

lastModifiedByType

createdByType

Tipo di identità che ha modificato l'ultima volta la risorsa.