Compartilhar via


Server Blob Auditing Policies - Create Or Update

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

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

Parâmetros de URI

Nome Em Obrigatório Tipo Description
blobAuditingPolicyName
path True

blobAuditingPolicyName

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 na API do Azure Resource Manager ou no portal.

serverName
path True

string

O nome do servidor.

subscriptionId
path True

string

A ID da 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

Nome Obrigatório Tipo Description
properties.state True

BlobAuditingPolicyState

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

properties.auditActionsAndGroups

string[]

Especifica o Actions-Groups e as Ações a serem auditádas.

O conjunto recomendado de grupos de ações a ser usado é a seguinte combinação: isso auditará 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 ao habilitar a 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 Database-Level Grupos de Ações de Auditoria.

Para a política de auditoria de banco de dados, ações específicas também podem ser especificadas (observe que 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 <objeto> 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 Database-Level Ações de Auditoria

properties.isAzureMonitorTargetEnabled

boolean

Especifica se os eventos de auditoria são enviados ao Azure Monitor. Para enviar os eventos para o 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 auditoria no nível do servidor, você deve usar o banco de dados 'mestre' como {databaseName}.

Formato 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 configurações de diagnóstico da API REST ou configurações de diagnóstico do PowerShell

properties.isDevopsAuditEnabled

boolean

Especifica o estado da auditoria devops. Se o estado estiver habilitado, os logs devops serão enviados para o Azure Monitor. Para enviar os eventos para o 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 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 configurações de diagnóstico da API REST ou configurações de diagnóstico do PowerShell

properties.isManagedIdentityInUse

boolean

Especifica se a Identidade Gerenciada é usada para acessar o armazenamento de blobs

properties.isStorageSecondaryKeyInUse

boolean

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

properties.queueDelayMs

integer (int32)

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

properties.retentionDays

integer (int32)

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

properties.storageAccountAccessKey

string

Especifica a chave do identificador da conta de armazenamento de auditoria. Se o estado estiver habilitado e o 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 ao SQL Server uma identidade gerenciada atribuída pelo sistema no AAD (Azure Active Directory).
  2. Conceda acesso à identidade do SQL Server à conta de armazenamento adicionando a função RBAC 'Colaborador de Dados de 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 (uuid)

Especifica a ID da assinatura do armazenamento de blobs.

properties.storageEndpoint

string

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

Respostas

Nome Tipo Description
200 OK

ServerBlobAuditingPolicy

Atualizou com êxito as configurações de auditoria.

202 Accepted

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

Cabeçalhos

Location: string

Other Status Codes

ErrorResponse

Respostas de erro: ***

  • 400 ManagedInstanceStoppingOrStopped – Operação conflitante enviada enquanto a instância está no estado de parada/parada

  • 400 ManagedInstanceStarting – Operação conflitante enviada enquanto a instância está no estado inicial

  • 400 InvalidServerBlobAuditingPolicyCreateRequest - A solicitação de 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 ou grupos de ações inválidos.

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

  • 400 BlobAuditingInvalidPolicyLength – Comprimento da política inválido, deve estar dentro de 200 caracteres.

  • 400 InvalidBlobAuditActionsAndGroups - Ações de auditoria ou grupos de ações inválidos.

  • 400 BlobAuditingNetworkSecurityPerimeterNotAllowed - Solicitação de saída bloqueada do Perímetro de Segurança de Rede para a Conta de Armazenamento

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

  • 400 BlobAuditingStorageOutboundFirewallNotAllowed - A conta de armazenamento não está na lista de FQDNs permitidos e, portanto, as regras de firewall de saída bloquearão a solicitação.

  • 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 ServerNotInSubscriptionResourceGroup – O servidor especificado não existe no grupo de recursos e na assinatura especificados.

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

  • 404 OperationIdNotFound – A operação com id não existe.

  • 409 ServerBlobAuditingPolicyInProgress – A auditoria de blob de servidor definida já está em andamento.

  • 409 CannotCancelOperation – A operação de gerenciamento está em um estado que não pode ser cancelado.

  • 409 OperationCancelled – A operação foi cancelada pelo usuário.

  • 409 OperationInterrupted – A operação no recurso não pôde ser concluída porque foi interrompida por outra operação no mesmo recurso.

  • 429 SubscriptionTooManyCreateUpdateRequests – Solicitações além do máximo de solicitações que podem ser processadas por recursos disponíveis.

  • 429 SubscriptionTooManyRequests – Solicitações além das solicitações máximas que podem ser processadas por recursos disponíveis.

  • 500 OperationTimedOut – A operação atingiu o tempo limite e foi revertida automaticamente. Tente novamente a operação.

  • 503 TooManyRequests – Solicitações além das solicitações máximas que podem ser processadas por recursos disponíveis.

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

Solicitação de exemplo

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/auditingSettings/default?api-version=2023-08-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"
    ],
    "isAzureMonitorTargetEnabled": true
  }
}

Resposta de exemplo

{
  "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

Solicitação de exemplo

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

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

Resposta de exemplo

{
  "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

Nome Description
blobAuditingPolicyName

O nome da política de auditoria de blob.

BlobAuditingPolicyState

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

ErrorAdditionalInfo

As informações adicionais do erro de gerenciamento de recursos.

ErrorDetail

O detalhe do erro.

ErrorResponse

Resposta de erro

ServerBlobAuditingPolicy

Uma política de auditoria de blob do servidor.

blobAuditingPolicyName

O nome da política de auditoria de blob.

Valor Description
default

BlobAuditingPolicyState

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

Valor Description
Enabled
Disabled

ErrorAdditionalInfo

As informações adicionais do erro de gerenciamento de recursos.

Nome Tipo Description
info

object

As informações adicionais.

type

string

O tipo de informação adicional.

ErrorDetail

O detalhe do erro.

Nome Tipo Description
additionalInfo

ErrorAdditionalInfo[]

As informações adicionais do erro.

code

string

O código de erro.

details

ErrorDetail[]

Os detalhes do erro.

message

string

A mensagem de erro.

target

string

O destino do erro.

ErrorResponse

Resposta de erro

Nome Tipo Description
error

ErrorDetail

O objeto de erro.

ServerBlobAuditingPolicy

Uma política de auditoria de blob do servidor.

Nome Tipo Description
id

string

ID do recurso.

name

string

Nome do recurso.

properties.auditActionsAndGroups

string[]

Especifica o Actions-Groups e as Ações a serem auditádas.

O conjunto recomendado de grupos de ações a ser usado é a seguinte combinação: isso auditará 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 ao habilitar a 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 Database-Level Grupos de Ações de Auditoria.

Para a política de auditoria de banco de dados, ações específicas também podem ser especificadas (observe que 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 <objeto> 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 Database-Level Ações de Auditoria

properties.isAzureMonitorTargetEnabled

boolean

Especifica se os eventos de auditoria são enviados ao Azure Monitor. Para enviar os eventos para o 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 auditoria no nível do servidor, você deve usar o banco de dados 'mestre' como {databaseName}.

Formato 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 configurações de diagnóstico da API REST ou configurações de diagnóstico do PowerShell

properties.isDevopsAuditEnabled

boolean

Especifica o estado da auditoria devops. Se o estado estiver habilitado, os logs devops serão enviados para o Azure Monitor. Para enviar os eventos para o 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 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 configurações de diagnóstico da API REST ou configurações de diagnóstico do PowerShell

properties.isManagedIdentityInUse

boolean

Especifica se a Identidade Gerenciada é usada para acessar o armazenamento de blobs

properties.isStorageSecondaryKeyInUse

boolean

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

properties.queueDelayMs

integer (int32)

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

properties.retentionDays

integer (int32)

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

properties.state

BlobAuditingPolicyState

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

properties.storageAccountAccessKey

string

Especifica a chave do identificador da conta de armazenamento de auditoria. Se o estado estiver habilitado e o 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 ao SQL Server uma identidade gerenciada atribuída pelo sistema no AAD (Azure Active Directory).
  2. Conceda acesso à identidade do SQL Server à conta de armazenamento adicionando a função RBAC 'Colaborador de Dados de 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 (uuid)

Especifica a ID da assinatura do armazenamento de blobs.

properties.storageEndpoint

string

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

type

string

Tipo de recurso.