Partilhar via


Extended Server Blob Auditing Policies - Create Or Update

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

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

Parâmetros do URI

Name Em Necessário Tipo Description
blobAuditingPolicyName
path True

blobAuditingPolicyName

O nome da política de auditoria de blobs.

resourceGroupName
path True

string

O nome do grupo de recursos que contém o recurso. Pode obter este valor a partir da API do Azure Resource Manager ou do portal.

serverName
path True

string

O nome do servidor.

subscriptionId
path True

string

O ID da subscrição que identifica uma subscrição do Azure.

api-version
query True

string

A versão da API a utilizar para o pedido.

Corpo do Pedido

Name Necessário Tipo Description
properties.state True

BlobAuditingPolicyState

Especifica o estado da auditoria. Se o estado estiver Ativado, é necessário storageEndpoint ou éAzureMonitorTargetEnabled.

properties.auditActionsAndGroups

string[]

Especifica os Actions-Groups e Ações a auditar.

O conjunto recomendado de grupos de ações a utilizar é a seguinte combinação. Esta ação irá auditar todas as consultas e procedimentos armazenados executados na base de dados, bem como inícios de sessão bem-sucedidos e falhados:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Esta combinação acima também é o conjunto configurado por predefinição ao ativar a auditoria a partir do portal do Azure.

Os grupos de ações suportados para auditoria são (nota: escolha apenas grupos específicos que abordem as suas necessidades de auditoria. A utilização de grupos desnecessários pode levar a grandes quantidades de registos 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

Estes são grupos que abrangem todas as instruções sql e procedimentos armazenados executados na base de dados e não devem ser utilizados em combinação com outros grupos, uma vez que tal resultará em registos de auditoria duplicados.

Para obter mais informações, veja Grupos de Ações de Auditoria ao Nível da Base de Dados.

Para a política de auditoria da base de dados, também é possível especificar Ações específicas (tenha em atenção que não é possível especificar ações para a política de auditoria do servidor). As ações suportadas para auditoria são: SELECIONAR ATUALIZAR INSERIR ELIMINAR EXECUTAR RECEBER REFERÊNCIAS

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

Tenha em atenção que, no formato acima, pode referir-se a um objeto, como uma tabela, vista ou procedimento armazenado, ou a uma base de dados ou esquema inteiro. Nos últimos casos, são utilizados os formulários DATABASE::{db_name} e SCHEMA::{schema_name}, respetivamente.

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, veja Ações de Auditoria ao Nível da Base de Dados

properties.isAzureMonitorTargetEnabled

boolean

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

Ao utilizar a API REST para configurar a auditoria, as Definições de Diagnóstico com a categoria de registos de diagnóstico "SQLSecurityAuditEvents" na base de dados também devem ser criadas. Tenha em atenção que, para a auditoria ao nível do servidor, deve utilizar a base de dados "mestra" como {databaseName}.

Formato URI das Definiçõ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, veja API REST de Definições de Diagnóstico ou Definições de Diagnóstico do PowerShell

properties.isDevopsAuditEnabled

boolean

Especifica o estado da auditoria de devops. Se o estado estiver Ativado, os registos 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 utilizar a API REST para configurar a auditoria, as Definições de Diagnóstico com a categoria de registos de diagnóstico "DevOpsOperationsAudit" na base de dados mestra também devem ser criadas.

Formato URI das Definiçõ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, veja API REST de Definições de Diagnóstico ou Definições de Diagnóstico do PowerShell

properties.isManagedIdentityInUse

boolean

Especifica se a Identidade Gerida é utilizada para aceder ao armazenamento de blobs

properties.isStorageSecondaryKeyInUse

boolean

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

properties.predicateExpression

string

Especifica a condição da cláusula where ao criar uma auditoria.

properties.queueDelayMs

integer

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

properties.retentionDays

integer

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

properties.storageAccountAccessKey

string

Especifica a chave de identificador da conta de armazenamento de auditoria. Se o estado estiver Ativado e o storageEndpoint for especificado, não especificar o storageAccountAccessKey utilizará a identidade gerida atribuída pelo sistema do SQL Server para aceder ao armazenamento. Pré-requisitos para utilizar a autenticação de identidade gerida:

  1. Atribua SQL Server uma identidade gerida atribuída pelo sistema no Azure Active Directory (AAD).
  2. Conceda SQL Server acesso de identidade à conta de armazenamento ao adicionar a função RBAC "Contribuidor de Dados do Blob de Armazenamento" à identidade do servidor. Para obter mais informações, veja Auditing to storage using Managed Identity authentication (Auditoria ao armazenamento com a autenticação de Identidade Gerida)
properties.storageAccountSubscriptionId

string

Especifica o ID da subscrição do armazenamento de blobs.

properties.storageEndpoint

string

Especifica o ponto final de armazenamento de blobs (por exemplo, https://MyAccount.blob.core.windows.net). Se o estado estiver Ativado, é necessário storageEndpoint ou éAzureMonitorTargetEnabled.

Respostas

Name Tipo Description
200 OK

ExtendedServerBlobAuditingPolicy

As definições de auditoria expandidas foram atualizadas com êxito.

202 Accepted

A atualização das definições de auditoria alargada está em curso.

Other Status Codes

Respostas de Erro: ***

  • 400 InvalidServerBlobAuditingPolicyCreateRequest – o pedido de política de auditoria de blobs do servidor de criação 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 BlobAuditingPredicateExpressionEmpty – parâmetro inválido "predicateExpression", o valor não pode estar vazio.

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

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

  • 400 InsufficientDiskSpaceForAuditing – Espaço insuficiente no disco para guardar metadados de auditoria na base de dados

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

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

  • 404 ServerNotInSubscriptionResourceGroup - O servidor especificado não existe no grupo de recursos e na subscrição especificados.

  • 404 OperationIdNotFound – a operação com o ID não existe.

  • 409 ServerBlobAuditingPolicyInProgress – A auditoria do blob do servidor definido já está em curso.

  • 409 OperationCancelled - A operação foi cancelada pelo utilizador.

  • 409 OperationInterrupted - Não foi possível concluir a operação no recurso porque foi interrompida por outra operação no mesmo recurso.

  • 429 SubscriptionTooManyCreateUpdateRequests – pedidos para além do máximo de pedidos que podem ser processados por recursos disponíveis.

  • 429 SubscriptionTooManyRequests – pedidos para além do máximo de pedidos que podem ser processados por recursos disponíveis.

  • 500 OperationTimedOut – a operação excedeu o limite de tempo e foi revertida automaticamente. Repita a operação.

  • 503 TooManyRequests – pedidos para além do máximo de pedidos que podem ser processados por recursos disponíveis.

Exemplos

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

Pedido de amostra

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
  }
}

Resposta da amostra

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

Pedido de amostra

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

Resposta da amostra

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

Definições

Name Description
blobAuditingPolicyName

O nome da política de auditoria de blobs.

BlobAuditingPolicyState

Especifica o estado da auditoria. Se o estado estiver Ativado, é necessário storageEndpoint ou éAzureMonitorTargetEnabled.

ExtendedServerBlobAuditingPolicy

Uma política de auditoria de blobs de servidor expandida.

blobAuditingPolicyName

O nome da política de auditoria de blobs.

Name Tipo Description
default

string

BlobAuditingPolicyState

Especifica o estado da auditoria. Se o estado estiver Ativado, é necessário storageEndpoint ou éAzureMonitorTargetEnabled.

Name Tipo Description
Disabled

string

Enabled

string

ExtendedServerBlobAuditingPolicy

Uma política de auditoria de blobs de servidor expandida.

Name Tipo Description
id

string

ID do Recurso.

name

string

Nome do recurso.

properties.auditActionsAndGroups

string[]

Especifica os Actions-Groups e Ações a auditar.

O conjunto recomendado de grupos de ações a utilizar é a seguinte combinação. Esta ação irá auditar todas as consultas e procedimentos armazenados executados na base de dados, bem como inícios de sessão bem-sucedidos e falhados:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Esta combinação acima também é o conjunto configurado por predefinição ao ativar a auditoria a partir do portal do Azure.

Os grupos de ações suportados para auditoria são (nota: escolha apenas grupos específicos que abordem as suas necessidades de auditoria. A utilização de grupos desnecessários pode levar a grandes quantidades de registos 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

Estes são grupos que abrangem todas as instruções sql e procedimentos armazenados executados na base de dados e não devem ser utilizados em combinação com outros grupos, uma vez que tal resultará em registos de auditoria duplicados.

Para obter mais informações, veja Grupos de Ações de Auditoria ao Nível da Base de Dados.

Para a política de auditoria da base de dados, também é possível especificar Ações específicas (tenha em atenção que não é possível especificar ações para a política de auditoria do servidor). As ações suportadas para auditoria são: SELECIONAR ATUALIZAR INSERIR ELIMINAR EXECUTAR RECEBER REFERÊNCIAS

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

Tenha em atenção que, no formato acima, pode referir-se a um objeto, como uma tabela, vista ou procedimento armazenado, ou a uma base de dados ou esquema inteiro. Nos últimos casos, são utilizados os formulários DATABASE::{db_name} e SCHEMA::{schema_name}, respetivamente.

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, veja Ações de Auditoria ao Nível da Base de Dados

properties.isAzureMonitorTargetEnabled

boolean

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

Ao utilizar a API REST para configurar a auditoria, as Definições de Diagnóstico com a categoria de registos de diagnóstico "SQLSecurityAuditEvents" na base de dados também devem ser criadas. Tenha em atenção que, para a auditoria ao nível do servidor, deve utilizar a base de dados "mestra" como {databaseName}.

Formato URI das Definiçõ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, veja API REST de Definições de Diagnóstico ou Definições de Diagnóstico do PowerShell

properties.isDevopsAuditEnabled

boolean

Especifica o estado da auditoria de devops. Se o estado estiver Ativado, os registos 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 utilizar a API REST para configurar a auditoria, as Definições de Diagnóstico com a categoria de registos de diagnóstico "DevOpsOperationsAudit" na base de dados mestra também devem ser criadas.

Formato URI das Definiçõ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, veja API REST de Definições de Diagnóstico ou Definições de Diagnóstico do PowerShell

properties.isManagedIdentityInUse

boolean

Especifica se a Identidade Gerida é utilizada para aceder ao armazenamento de blobs

properties.isStorageSecondaryKeyInUse

boolean

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

properties.predicateExpression

string

Especifica a condição da cláusula where ao criar uma auditoria.

properties.queueDelayMs

integer

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

properties.retentionDays

integer

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

properties.state

BlobAuditingPolicyState

Especifica o estado da auditoria. Se o estado estiver Ativado, é necessário storageEndpoint ou éAzureMonitorTargetEnabled.

properties.storageAccountAccessKey

string

Especifica a chave de identificador da conta de armazenamento de auditoria. Se o estado estiver Ativado e o storageEndpoint for especificado, não especificar o storageAccountAccessKey utilizará a identidade gerida atribuída pelo sistema do SQL Server para aceder ao armazenamento. Pré-requisitos para utilizar a autenticação de identidade gerida:

  1. Atribua SQL Server uma identidade gerida atribuída pelo sistema no Azure Active Directory (AAD).
  2. Conceda SQL Server acesso de identidade à conta de armazenamento ao adicionar a função RBAC "Contribuidor de Dados do Blob de Armazenamento" à identidade do servidor. Para obter mais informações, veja Auditing to storage using Managed Identity authentication (Auditoria ao armazenamento com a autenticação de Identidade Gerida)
properties.storageAccountSubscriptionId

string

Especifica o ID da subscrição do armazenamento de blobs.

properties.storageEndpoint

string

Especifica o ponto final de armazenamento de blobs (por exemplo, https://MyAccount.blob.core.windows.net). Se o estado estiver Ativado, é necessário storageEndpoint ou éAzureMonitorTargetEnabled.

type

string

Tipo de recurso.