Server Blob Auditing Policies - Create Or Update

Cria ou atualiza a política de auditoria de blob de um servidor.

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

Parâmetros de URI

Name In Required Type Description
blobAuditingPolicyName
path True
  • string

O nome da política de auditoria de blob.

resourceGroupName
path True
  • string

O nome do grupo de recursos que contém o recurso. Você pode obter esse valor por meio da API do Gerenciador de Recursos do Azure ou por meio do portal.

serverName
path True
  • string

O nome do servidor.

subscriptionId
path True
  • string

A ID de assinatura que identifica uma assinatura do Azure.

api-version
query True
  • string

A versão da API a ser usada para a solicitação.

Corpo da solicitação

Name Required Type Description
properties.state True

Especifica o estado da auditoria. Se o estado for Habilitado, storageEndpoint ou isAzureMonitorTargetEnabled serão necessários.

properties.auditActionsAndGroups
  • string[]

Especifica o Actions-Groups ações a auditar.

O conjunto recomendado de grupos de ações a ser usado é a seguinte combinação : isso audita todas as consultas e procedimentos armazenados executados no banco de dados, bem como logons bem-sucedidos e com falha:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Essa combinação acima também é o conjunto configurado por padrão durante a habilitação da auditoria do portal do Azure.

Os grupos de ações com suporte para auditoria são (observação: escolha apenas grupos específicos que abrangem suas necessidades de auditoria. O uso de grupos desnecessários pode levar a grandes quantidades de registros de auditoria:

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

Esses são grupos que abrangem todas as instruções sql e procedimentos armazenados executados no banco de dados e não devem ser usados em combinação com outros grupos, pois isso resultará em logs de auditoria duplicados.

Para obter mais informações, consulte Grupos de Ações de Auditoria no Nível do Banco de Dados.

Para a política de auditoria de banco de dados, ações específicas também podem ser especificadas (observe que as ações não podem ser especificadas para a política de auditoria do servidor). As ações com suporte para auditoria são: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

O formulário geral para definir uma ação a ser auditada é: {action} ON {object} BY {principal}

Observe que no formato acima pode se referir a um objeto como uma tabela, exibição ou procedimento armazenado ou um banco de dados ou esquema inteiro. Para os últimos casos, os formulários DATABASE::{db_name} e SCHEMA::{schema_name} são usados, respectivamente.

Por exemplo: SELECT on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

Para obter mais informações, consulte Ações de auditoria no nível do banco de dados

properties.isAzureMonitorTargetEnabled
  • boolean

Especifica se os eventos de auditoria são enviados para Azure Monitor. Para enviar os eventos para Azure Monitor, especifique 'State' como 'Enabled' e 'IsAzureMonitorTargetEnabled' como true.

Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'SQLSecurityAuditEvents' no banco de dados também devem ser criadas. Observe que, para a auditoria no nível do servidor, você deve usar o banco de dados 'mestre' como {databaseName}.

Formato de URI de Configurações de Diagnóstico: 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

Para obter mais informações, consulte API REST de Configurações de Diagnóstico ou Configurações de Diagnóstico do PowerShell

properties.isDevopsAuditEnabled
  • boolean

Especifica o estado da auditoria de devops. Se o estado estiver Habilitado, os logs de devops serão enviados para Azure Monitor. Para enviar os eventos para Azure Monitor, especifique 'State' como 'Enabled', 'IsAzureMonitorTargetEnabled' como true e 'IsDevopsAuditEnabled' como true

Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'DevOpsOperationsAudit' no banco de dados mestre também devem ser criadas.

Formato de URI de Configurações de Diagnóstico: 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

Para obter mais informações, consulte API REST de Configurações de Diagnóstico ou Configurações de Diagnóstico do PowerShell

properties.isStorageSecondaryKeyInUse
  • boolean

Especifica se o valor storageAccountAccessKey é a chave secundária do armazenamento.

properties.queueDelayMs
  • integer

Especifica o período máximo, em milissegundos, que pode decorrer antes de as ações de auditorias serem forçadas a serem processadas. O valor padrão mínimo é 1000 (1 segundo). O máximo é 2.147.483.647.

properties.retentionDays
  • integer

Especifica o número de dias a manter nos logs de auditoria na conta de armazenamento.

properties.storageAccountAccessKey
  • string

Especifica a chave do identificador da conta de armazenamento de auditoria. Se state for Enabled e storageEndpoint for especificado, não especificar o storageAccountAccessKey usará a identidade gerenciada atribuída pelo sistema do SQL Server para acessar o armazenamento. Pré-requisitos para usar a autenticação de identidade gerenciada:

  1. Atribua SQL Server uma identidade gerenciada atribuída pelo sistema Azure Active Directory (AAD).
  2. Conceda SQL Server acesso de identidade à conta de armazenamento adicionando a função RBAC 'Colaborador de Dados do Blob de Armazenamento' à identidade do servidor. Para obter mais informações, consulte Auditoria no armazenamento usando a autenticação de Identidade Gerenciada
properties.storageAccountSubscriptionId
  • string

Especifica a ID da assinatura do armazenamento de blob.

properties.storageEndpoint
  • string

Especifica o ponto de extremidade de armazenamento de blob (por exemplo, https://MyAccount.blob.core.windows.net) . Se o estado for Habilitado, storageEndpoint ou isAzureMonitorTargetEnabled será necessário.

Respostas

Name Type Description
200 OK

Atualização bem-sucedida das configurações de auditoria.

202 Accepted

A atualização das configurações de auditoria está em andamento.

Other Status Codes

Respostas de erro: ***

  • 400 InvalidServerBlobAuditingPolicyCreateRequest – a solicitação criar política de auditoria de blob do servidor não existe ou não tem nenhum objeto de propriedades.

  • 400 InvalidBlobAuditActionsAndGroups – Ações de auditoria inválidas ou grupos de ações.

  • 400 DataSecurityInvalidUserSuppliedParameter – um valor de parâmetro inválido foi fornecido pelo cliente.

  • 400 BlobAuditingInvalidStorageAccountCredentials – a conta de armazenamento ou a chave de acesso fornecidas não é válida.

  • 400 InvalidBlobAuditActionsAndGroups – Ações de auditoria inválidas ou grupos de ações.

  • 400 InsufficientDiskSpaceForAuditing – espaço em disco insuficiente para salvar metadados de auditoria no banco de dados

  • 400 InvalidBlobAuditActions – Ação de auditoria inválida

  • 404 SubscriptionDoesNotHaveServer – O servidor solicitado não foi encontrado

  • 404 ServerNotInSubscriptionResourceGroup – o servidor especificado não existe no grupo de recursos e na assinatura especificados.

  • 409 ServerBlobAuditingPolicyInProgress – Definir a auditoria de blob do servidor já está em andamento.

Exemplos

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-02-01-preview
{
  "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-02-01-preview
{
  "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"
    ]
  }
}

Definições

BlobAuditingPolicyState

Especifica o estado da auditoria. Se o estado for Habilitado, storageEndpoint ou isAzureMonitorTargetEnabled serão necessários.

ServerBlobAuditingPolicy

Uma política de auditoria de blob de servidor.

BlobAuditingPolicyState

Especifica o estado da auditoria. Se o estado for Habilitado, storageEndpoint ou isAzureMonitorTargetEnabled serão necessários.

Name Type Description
Disabled
  • string
Enabled
  • string

ServerBlobAuditingPolicy

Uma política de auditoria de blob de servidor.

Name Type Description
id
  • string

ID do recurso.

name
  • string

Nome do recurso.

properties.auditActionsAndGroups
  • string[]

Especifica o Actions-Groups ações a auditar.

O conjunto recomendado de grupos de ações a ser usado é a seguinte combinação : isso audita todas as consultas e procedimentos armazenados executados no banco de dados, bem como logons bem-sucedidos e com falha:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Essa combinação acima também é o conjunto configurado por padrão durante a habilitação da auditoria do portal do Azure.

Os grupos de ações com suporte para auditoria são (observação: escolha apenas grupos específicos que abrangem suas necessidades de auditoria. O uso de grupos desnecessários pode levar a grandes quantidades de registros de auditoria:

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

Esses são grupos que abrangem todas as instruções sql e procedimentos armazenados executados no banco de dados e não devem ser usados em combinação com outros grupos, pois isso resultará em logs de auditoria duplicados.

Para obter mais informações, consulte Grupos de Ações de Auditoria no Nível do Banco de Dados.

Para a política de auditoria de banco de dados, ações específicas também podem ser especificadas (observe que as ações não podem ser especificadas para a política de auditoria do servidor). As ações com suporte para auditoria são: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

O formulário geral para definir uma ação a ser auditada é: {action} ON {object} BY {principal}

Observe que no formato acima pode se referir a um objeto como uma tabela, exibição ou procedimento armazenado ou um banco de dados ou esquema inteiro. Para os últimos casos, os formulários DATABASE::{db_name} e SCHEMA::{schema_name} são usados, respectivamente.

Por exemplo: SELECT on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

Para obter mais informações, consulte Ações de auditoria no nível do banco de dados

properties.isAzureMonitorTargetEnabled
  • boolean

Especifica se os eventos de auditoria são enviados para Azure Monitor. Para enviar os eventos para Azure Monitor, especifique 'State' como 'Enabled' e 'IsAzureMonitorTargetEnabled' como true.

Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'SQLSecurityAuditEvents' no banco de dados também devem ser criadas. Observe que, para a auditoria no nível do servidor, você deve usar o banco de dados 'mestre' como {databaseName}.

Formato de URI de Configurações de Diagnóstico: 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

Para obter mais informações, consulte API REST de Configurações de Diagnóstico ou Configurações de Diagnóstico do PowerShell

properties.isDevopsAuditEnabled
  • boolean

Especifica o estado da auditoria de devops. Se o estado estiver Habilitado, os logs de devops serão enviados para Azure Monitor. Para enviar os eventos para Azure Monitor, especifique 'State' como 'Enabled', 'IsAzureMonitorTargetEnabled' como true e 'IsDevopsAuditEnabled' como true

Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'DevOpsOperationsAudit' no banco de dados mestre também devem ser criadas.

Formato de URI de Configurações de Diagnóstico: 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

Para obter mais informações, consulte API REST de Configurações de Diagnóstico ou Configurações de Diagnóstico do PowerShell

properties.isStorageSecondaryKeyInUse
  • boolean

Especifica se o valor storageAccountAccessKey é a chave secundária do armazenamento.

properties.queueDelayMs
  • integer

Especifica o período máximo, em milissegundos, que pode decorrer antes de as ações de auditorias serem forçadas a serem processadas. O valor padrão mínimo é 1000 (1 segundo). O máximo é 2.147.483.647.

properties.retentionDays
  • integer

Especifica o número de dias a manter nos logs de auditoria na conta de armazenamento.

properties.state

Especifica o estado da auditoria. Se o estado for Habilitado, storageEndpoint ou isAzureMonitorTargetEnabled serão necessários.

properties.storageAccountAccessKey
  • string

Especifica a chave do identificador da conta de armazenamento de auditoria. Se state for Enabled e storageEndpoint for especificado, não especificar o storageAccountAccessKey usará a identidade gerenciada atribuída pelo sistema do SQL Server para acessar o armazenamento. Pré-requisitos para usar a autenticação de identidade gerenciada:

  1. Atribua SQL Server uma identidade gerenciada atribuída pelo sistema Azure Active Directory (AAD).
  2. Conceda SQL Server acesso de identidade à conta de armazenamento adicionando a função RBAC 'Colaborador de Dados do Blob de Armazenamento' à identidade do servidor. Para obter mais informações, consulte Auditoria no armazenamento usando a autenticação de Identidade Gerenciada
properties.storageAccountSubscriptionId
  • string

Especifica a ID da assinatura do armazenamento de blob.

properties.storageEndpoint
  • string

Especifica o ponto de extremidade de armazenamento de blob (por exemplo, https://MyAccount.blob.core.windows.net) . Se o estado for Habilitado, storageEndpoint ou isAzureMonitorTargetEnabled será necessário.

type
  • string

Tipo de recurso.