Extended Database Blob Auditing Policies - Create Or Update
Crea o aggiorna i criteri di controllo BLOB di un database esteso.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/extendedAuditingSettings/default?api-version=2021-11-01
Parametri dell'URI
Nome | In | Necessario | Tipo | Descrizione |
---|---|---|---|---|
blob
|
path | True |
Nome del criterio di controllo BLOB. |
|
database
|
path | True |
string |
Nome del database. |
resource
|
path | True |
string |
Nome del gruppo di risorse contenente la risorsa. È possibile ottenere questo valore dall'API di Gestione risorse di Azure o dal portale. |
server
|
path | True |
string |
Nome del server. |
subscription
|
path | True |
string |
ID sottoscrizione che identifica una sottoscrizione di Azure. |
api-version
|
query | True |
string |
Versione dell'API da usare per la richiesta. |
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 la 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 precedente è anche il set configurato per impostazione predefinita quando si abilita il controllo dal portale di 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 Gruppi di azioni di controllo a livello di database. 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 controllare sono: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES Il modulo generale per la definizione di un'azione da controllare è: {action} ON {object} BY {principal} Si noti che 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 on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public Per altre informazioni, vedere Azioni di controllo a livello di database |
|
properties.isAzureMonitorTargetEnabled |
boolean |
Specifica se gli eventi di controllo vengono inviati a Monitoraggio di Azure. Per inviare gli eventi a Monitoraggio di Azure, specificare "State" come "Enabled" e "IsAzureMonitorTargetEnabled" come true. 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}. Formato URI impostazioni di diagnostica: 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 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.predicateExpression |
string |
Specifica la condizione della clausola where durante la creazione di un controllo. |
|
properties.queueDelayMs |
integer |
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 |
Specifica il numero di giorni da mantenere nei log di controllo nell'account di archiviazione. |
|
properties.storageAccountAccessKey |
string |
Specifica la chiave dell'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 alla risorsa di archiviazione. Prerequisiti per l'uso dell'autenticazione dell'identità gestita:
|
|
properties.storageAccountSubscriptionId |
string |
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 |
Impostare correttamente i criteri di controllo DEI BLOB del database estesi. |
|
201 Created |
È stato creato correttamente il criterio di controllo BLOB di database esteso. |
|
Other Status Codes |
Risposte di errore:
|
Esempio
Create or update an extended 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/extendedAuditingSettings/default?api-version=2021-11-01
{
"properties": {
"state": "Enabled",
"isAzureMonitorTargetEnabled": true
}
}
Risposta di esempio
{
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
"name": "default",
"type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
"properties": {
"state": "Enabled",
"isAzureMonitorTargetEnabled": true,
"retentionDays": 0,
"storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
"auditActionsAndGroups": [
"SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
"FAILED_DATABASE_AUTHENTICATION_GROUP",
"BATCH_COMPLETED_GROUP"
]
}
}
{
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
"name": "default",
"type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
"properties": {
"state": "Enabled",
"isAzureMonitorTargetEnabled": true,
"retentionDays": 0,
"storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
"auditActionsAndGroups": [
"SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
"FAILED_DATABASE_AUTHENTICATION_GROUP",
"BATCH_COMPLETED_GROUP"
]
}
}
Create or update an extended 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/extendedAuditingSettings/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": [
"DATABASE_LOGOUT_GROUP",
"DATABASE_ROLE_MEMBER_CHANGE_GROUP",
"UPDATE on database::TestDatabaseName by public"
],
"predicateExpression": "statement = 'select 1'",
"isAzureMonitorTargetEnabled": true
}
}
Risposta di esempio
{
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
"name": "default",
"type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
"properties": {
"state": "Enabled",
"storageEndpoint": "https://mystorage.blob.core.windows.net",
"retentionDays": 0,
"storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
"isStorageSecondaryKeyInUse": false,
"queueDelayMs": 4000,
"auditActionsAndGroups": [
"DATABASE_LOGOUT_GROUP",
"DATABASE_ROLE_MEMBER_CHANGE_GROUP",
"UPDATE on database::TestDatabaseName by public"
],
"predicateExpression": "statement = 'select 1'",
"isAzureMonitorTargetEnabled": true
}
}
{
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
"name": "default",
"type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
"properties": {
"state": "Enabled",
"storageEndpoint": "https://mystorage.blob.core.windows.net",
"retentionDays": 0,
"storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
"isStorageSecondaryKeyInUse": false,
"queueDelayMs": 4000,
"auditActionsAndGroups": [
"DATABASE_LOGOUT_GROUP",
"DATABASE_ROLE_MEMBER_CHANGE_GROUP",
"UPDATE on database::TestDatabaseName by public"
],
"predicateExpression": "statement = 'select 1'",
"isAzureMonitorTargetEnabled": true
}
}
Create or update an extended 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/extendedAuditingSettings/default?api-version=2021-11-01
{
"properties": {
"state": "Enabled",
"storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
"storageEndpoint": "https://mystorage.blob.core.windows.net"
}
}
Risposta di esempio
{
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
"name": "default",
"type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
"properties": {
"state": "Enabled",
"storageEndpoint": "https://mystorage.blob.core.windows.net",
"retentionDays": 0,
"storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
"isStorageSecondaryKeyInUse": false,
"auditActionsAndGroups": [
"SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
"FAILED_DATABASE_AUTHENTICATION_GROUP",
"BATCH_COMPLETED_GROUP"
],
"isAzureMonitorTargetEnabled": false
}
}
{
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
"name": "default",
"type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
"properties": {
"state": "Enabled",
"storageEndpoint": "https://mystorage.blob.core.windows.net",
"retentionDays": 0,
"storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
"isStorageSecondaryKeyInUse": false,
"auditActionsAndGroups": [
"SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
"FAILED_DATABASE_AUTHENTICATION_GROUP",
"BATCH_COMPLETED_GROUP"
],
"isAzureMonitorTargetEnabled": false
}
}
Definizioni
Nome | Descrizione |
---|---|
blob |
Nome dei criteri di controllo BLOB. |
Blob |
Specifica lo stato del controllo. Se lo stato è Abilitato, sono necessari storageEndpoint o isAzureMonitorTargetEnabled. |
Extended |
Criteri di controllo dei BLOB del database estesi. |
blobAuditingPolicyName
Nome dei criteri di controllo BLOB.
Nome | Tipo | Descrizione |
---|---|---|
default |
string |
BlobAuditingPolicyState
Specifica lo stato del controllo. Se lo stato è Abilitato, sono necessari storageEndpoint o isAzureMonitorTargetEnabled.
Nome | Tipo | Descrizione |
---|---|---|
Disabled |
string |
|
Enabled |
string |
ExtendedDatabaseBlobAuditingPolicy
Criteri di controllo dei BLOB del database estesi.
Nome | Tipo | Descrizione |
---|---|---|
id |
string |
ID risorsa. |
name |
string |
Nome risorsa. |
properties.auditActionsAndGroups |
string[] |
Specifica la 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 precedente è anche il set configurato per impostazione predefinita quando si abilita il controllo dal portale di 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 Gruppi di azioni di controllo a livello di database. 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 controllare sono: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES Il modulo generale per la definizione di un'azione da controllare è: {action} ON {object} BY {principal} Si noti che 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 on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public Per altre informazioni, vedere Azioni di controllo a livello di database |
properties.isAzureMonitorTargetEnabled |
boolean |
Specifica se gli eventi di controllo vengono inviati a Monitoraggio di Azure. Per inviare gli eventi a Monitoraggio di Azure, specificare "State" come "Enabled" e "IsAzureMonitorTargetEnabled" come true. 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}. Formato URI impostazioni di diagnostica: 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 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.predicateExpression |
string |
Specifica la condizione della clausola where durante la creazione di un controllo. |
properties.queueDelayMs |
integer |
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 |
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 |
Specifica la chiave dell'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 alla risorsa di archiviazione. Prerequisiti per l'uso dell'autenticazione dell'identità gestita:
|
properties.storageAccountSubscriptionId |
string |
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. |
type |
string |
Tipo di risorsa. |