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 |
|---|---|---|---|---|
|
blob
|
path | True |
Il nome della politica di audit del blob. |
|
|
database
|
path | True |
string |
Nome del database. |
|
resource
|
path | True |
string minLength: 1maxLength: 90 |
Nome del gruppo di risorse. Il nome è insensibile alle maiuscole e minuscole. |
|
server
|
path | True |
string |
Il nome del server. |
|
subscription
|
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 |
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 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:
|
|
| properties.storageAccountSubscriptionId |
string (uuid) |
Specifica l'ID sottoscrizione dell'archiviazione BLOB. |
|
| properties.storageEndpoint |
string |
Specifica l'endpoint di archiviazione BLOB , ad esempio |
Risposte
| Nome | Tipo | Descrizione |
|---|---|---|
| 200 OK |
Risorsa 'DatabaseBlobAuditingPolicy' operativa di aggiornamento riuscita |
|
| 201 Created |
Risorsa 'DatabaseBlobAuditingPolicy' crea l'operazione con successo |
|
| Other Status Codes |
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
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 |
|---|---|
|
Blob |
|
|
Blob |
Specifica lo stato del controllo. Se lo stato è Abilitato, sono necessari storageEndpoint o isAzureMonitorTargetEnabled. |
|
created |
Tipo di identità che ha creato la risorsa. |
|
Database |
Criteri di controllo BLOB del database. |
|
Error |
Informazioni aggiuntive sull'errore di gestione delle risorse. |
|
Error |
Dettagli dell'errore. |
|
Error |
Risposta di errore |
|
system |
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 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 |
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:
|
| properties.storageAccountSubscriptionId |
string (uuid) |
Specifica l'ID sottoscrizione dell'archiviazione BLOB. |
| properties.storageEndpoint |
string |
Specifica l'endpoint di archiviazione BLOB , ad esempio |
| 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 |
Informazioni aggiuntive sull'errore. |
|
| code |
string |
Codice di errore. |
| details |
Dettagli dell'errore. |
|
| message |
string |
Messaggio di errore. |
| target |
string |
Destinazione dell'errore. |
ErrorResponse
Risposta di errore
| Nome | Tipo | Descrizione |
|---|---|---|
| error |
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 |
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 |
Tipo di identità che ha modificato l'ultima volta la risorsa. |