Condividi tramite


Extended Server Blob Auditing Policies - Create Or Update

Crea o aggiorna i criteri di controllo BLOB di un server esteso.

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

Parametri dell'URI

Nome In Necessario Tipo Descrizione
blobAuditingPolicyName
path True

blobAuditingPolicyName

Nome del criterio di controllo BLOB.

resourceGroupName
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.

serverName
path True

string

Nome del server.

subscriptionId
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

BlobAuditingPolicyState

Specifica lo stato del controllo. Se lo stato è Abilitato, è necessario 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 nel database, nonché gli account di accesso 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 dalla 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

Questi sono gruppi che coprono tutte le istruzioni sql e le stored procedure eseguite nel database e non devono essere usati in combinazione con altri gruppi, in quanto ciò comporta i log di controllo duplicati.

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 server). Le azioni supportate da controllare sono: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

La forma 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 o 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 '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 impostazioni di diagnostica o Impostazioni di diagnostica PowerShell

properties.isDevopsAuditEnabled

boolean

Specifica lo stato del controllo devops. Se lo stato è Abilitato, i log devops verranno inviati a Monitoraggio di Azure. Per inviare gli eventi a Monitoraggio di Azure, specificare 'State' come 'Enabled', 'IsAzureMonitorTargetEnabled' come true e 'IsDevopsAuditEnabled' come true

Quando si usa l'API REST per configurare il controllo, è necessario creare anche le impostazioni di diagnostica con la categoria di log di diagnostica "DevOpsOperationsAudit" nel database master.

Formato URI impostazioni di diagnostica: 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

Per altre informazioni, vedere API REST 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 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 identificatore dell'account di archiviazione di controllo. Se lo stato è Abilitato e storageEndpoint viene specificato, non specificando storageAccountAccessKey userà l'identità gestita assegnata dal sistema di SQL Server per accedere all'archiviazione. Prerequisiti per l'uso dell'autenticazione di identità gestita:

  1. Assegnare SQL Server un'identità gestita assegnata dal sistema in Azure Active Directory (AAD).
  2. Concedere SQL Server l'accesso all'identità all'account di archiviazione aggiungendo il ruolo di controllo degli accessi in base al ruolo "Collaboratore dati BLOB di archiviazione" all'identità del server. Per altre informazioni, vedere Controllo dell'archiviazione tramite l'autenticazione di 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

ExtendedServerBlobAuditingPolicy

È stato aggiornato correttamente le impostazioni di controllo estese.

202 Accepted

L'aggiornamento delle impostazioni di controllo estese è in corso.

Other Status Codes

Risposte agli errori: **

  • 400 InvalidServerBlobAuditingPolicyCreateRequest- La richiesta di criteri di controllo BLOB del server non esiste o non ha alcun oggetto proprietà.

  • 400 InvalidBlobAuditActionsAndGroups - Azioni di controllo o gruppi di azioni non validi.

  • 400 DataSecurityInvalidUserSuppliedParameter - Un valore di parametro non valido è stato fornito dal client.

  • 400 BLOBAuditingPredicateExpressionEmpty - Parametro non valido 'predicateExpression', il valore non può essere vuoto.

  • 400 BLOBAuditingInvalidStorageAccountCredentials: l'account di archiviazione o la chiave di accesso forniti non è valida.

  • 400 InvalidBlobAuditActionsAndGroups - Azioni di controllo o gruppi di azioni non validi.

  • 400 InsufficientiDiskSpaceForAuditing - Spazio su disco insufficiente per salvare i metadati di controllo nel database

  • 400 InvalidBlobAuditActions - Azione di controllo non valida

  • 404 SubscriptionDoesNotHaveServer - Il server richiesto non è stato trovato

  • 404 ServerNotInSubscriptionResourceGroup - Il server specificato non esiste nel gruppo di risorse e nella sottoscrizione specificati.

  • 404 OperationIdNotFound: l'operazione con ID non esiste.

  • 409 ServerBlobAuditingPolicyInProgress - Impostare il controllo BLOB del server è già in corso.

  • 409 OperationCancelled: l'operazione è stata annullata dall'utente.

  • 409 Operazione interrotta: impossibile completare l'operazione sulla risorsa perché è stata interrotta da un'altra operazione sulla stessa risorsa.

  • 429 SubscriptionTooManyCreateUpdateRequests - Richieste oltre le richieste massime che possono essere elaborate dalle risorse disponibili.

  • 429 SubscriptionTooManyRequests - Richieste oltre le richieste massime che possono essere elaborate dalle risorse disponibili.

  • 500 OperationTimedOut: l'operazione viene timeout e viene eseguito automaticamente il rollback. Ripetere l'operazione.

  • 503 TooManyRequests : richieste oltre il numero massimo di richieste che possono essere elaborate dalle risorse disponibili.

Esempio

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

Update a server's extended 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/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": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "predicateExpression": "object_name = 'SensitiveData'",
    "isAzureMonitorTargetEnabled": true
  }
}

Risposta di esempio

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/extendedAuditingSettings/default",
  "name": "default",
  "type": "Microsoft.Sql/servers/extendedAuditingSettings",
  "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"
    ],
    "predicateExpression": "object_name = 'SensitiveData'",
    "isAzureMonitorTargetEnabled": true
  }
}

Update a server's extended 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/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/extendedAuditingSettings/default",
  "name": "default",
  "type": "Microsoft.Sql/servers/extendedAuditingSettings",
  "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"
    ],
    "isAzureMonitorTargetEnabled": false
  }
}

Definizioni

Nome Descrizione
blobAuditingPolicyName

Nome del criterio di controllo BLOB.

BlobAuditingPolicyState

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

ExtendedServerBlobAuditingPolicy

Criteri di controllo del BLOB del server estesi.

blobAuditingPolicyName

Nome del criterio di controllo BLOB.

Nome Tipo Descrizione
default

string

BlobAuditingPolicyState

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

Nome Tipo Descrizione
Disabled

string

Enabled

string

ExtendedServerBlobAuditingPolicy

Criteri di controllo del BLOB del server 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 nel database, nonché gli account di accesso 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 dalla 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

Questi sono gruppi che coprono tutte le istruzioni sql e le stored procedure eseguite nel database e non devono essere usati in combinazione con altri gruppi, in quanto ciò comporta i log di controllo duplicati.

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 server). Le azioni supportate da controllare sono: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

La forma 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 o 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 '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 impostazioni di diagnostica o Impostazioni di diagnostica PowerShell

properties.isDevopsAuditEnabled

boolean

Specifica lo stato del controllo devops. Se lo stato è Abilitato, i log devops verranno inviati a Monitoraggio di Azure. Per inviare gli eventi a Monitoraggio di Azure, specificare 'State' come 'Enabled', 'IsAzureMonitorTargetEnabled' come true e 'IsDevopsAuditEnabled' come true

Quando si usa l'API REST per configurare il controllo, è necessario creare anche le impostazioni di diagnostica con la categoria di log di diagnostica "DevOpsOperationsAudit" nel database master.

Formato URI impostazioni di diagnostica: 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

Per altre informazioni, vedere API REST 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 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

BlobAuditingPolicyState

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

properties.storageAccountAccessKey

string

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

  1. Assegnare SQL Server un'identità gestita assegnata dal sistema in Azure Active Directory (AAD).
  2. Concedere SQL Server l'accesso all'identità all'account di archiviazione aggiungendo il ruolo di controllo degli accessi in base al ruolo "Collaboratore dati BLOB di archiviazione" all'identità del server. Per altre informazioni, vedere Controllo dell'archiviazione tramite l'autenticazione di 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.