Compartir a través de


Database Blob Auditing Policies - Create Or Update

Crea o actualiza la directiva de auditoría de blobs de una base de datos.

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

Parámetros de identificador URI

Nombre En Requerido Tipo Description
blobAuditingPolicyName
path True

blobAuditingPolicyName

Nombre de la directiva de auditoría de blobs.

databaseName
path True

string

El nombre de la base de datos.

resourceGroupName
path True

string

Nombre del grupo de recursos que contiene el recurso. Puede obtener este valor en la API del Administrador de recursos o el portal de Azure.

serverName
path True

string

El nombre del servidor.

subscriptionId
path True

string

El id. de suscripción que identifica una suscripción de Azure.

api-version
query True

string

La versión de API que se usará para la solicitud.

Cuerpo de la solicitud

Nombre Requerido Tipo Description
properties.state True

BlobAuditingPolicyState

Especifica el estado de la auditoría. Si el estado es Enabled, storageEndpoint o isAzureMonitorTargetEnabled son necesarios.

properties.auditActionsAndGroups

string[]

Especifica el Actions-Groups y las acciones que se van a auditar.

El conjunto recomendado de grupos de acciones que se van a usar es la siguiente combinación: se auditarán todas las consultas y procedimientos almacenados ejecutados en la base de datos, así como inicios de sesión correctos y con errores:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Esta combinación anterior también es el conjunto que se configura de forma predeterminada al habilitar la auditoría desde el Azure Portal.

Los grupos de acciones admitidos para auditar son (nota: elija solo grupos específicos que cubran las necesidades de auditoría. El uso de grupos innecesarios podría dar lugar a grandes cantidades de registros de auditoría):

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

Estos son grupos que cubren todas las instrucciones SQL y los procedimientos almacenados ejecutados en la base de datos, y no deben usarse en combinación con otros grupos, ya que esto dará lugar a registros de auditoría duplicados.

Para obtener más información, vea Grupos de acciones de auditoría de nivel de base de datos.

Para la directiva de auditoría de base de datos, también se pueden especificar acciones específicas (tenga en cuenta que las acciones no se pueden especificar para la directiva de auditoría del servidor). Las acciones admitidas para auditar son: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

El formulario general para definir una acción que se va a auditar es: {action} ON {object} BY {principal}

Tenga en cuenta que en el formato anterior puede hacer referencia a un objeto como una tabla, una vista o un procedimiento almacenado, o a una base de datos o esquema completo. En los últimos casos, se usan los formularios DATABASE:::{db_name} y SCHEMA::{schema_name}, respectivamente.

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

Para obtener más información, consulte Acciones de auditoría de nivel de base de datos.

properties.isAzureMonitorTargetEnabled

boolean

Especifica si los eventos de auditoría se envían a Azure Monitor. Para enviar los eventos a Azure Monitor, especifique "State" como "Enabled" y "IsAzureMonitorTargetEnabled" como true.

Al usar la API REST para configurar la auditoría, también se debe crear la categoría de registros de diagnóstico "SQLSecurityAuditEvents" en la base de datos. Tenga en cuenta que, para la auditoría de nivel de servidor, debe usar la base de datos "master" como {databaseName}.

Formato de URI de configuración 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 obtener más información, consulte Configuración de diagnóstico API REST o Configuración de diagnóstico de PowerShell.

properties.isManagedIdentityInUse

boolean

Especifica si se usa la identidad administrada para acceder al almacenamiento de blobs.

properties.isStorageSecondaryKeyInUse

boolean

Especifica si el valor storageAccountAccessKey es la clave secundaria del almacenamiento.

properties.queueDelayMs

integer

Especifica la cantidad de tiempo, en milisegundos, que puede transcurrir antes de exigir que se procesen las acciones de auditoría. El valor mínimo predeterminado es 1000 (1 segundo). El máximo es 2.147.483.647.

properties.retentionDays

integer

Especifica el número de días que se mantendrán en los registros de auditoría de la cuenta de almacenamiento.

properties.storageAccountAccessKey

string

Especifica la clave de identificador de la cuenta de almacenamiento de auditoría. Si se especifica state is Enabled y storageEndpoint, no especifica storageAccountAccessKey usará la identidad administrada asignada por el sistema de SQL Server para acceder al almacenamiento. Requisitos previos para usar la autenticación de identidad administrada:

  1. Asigne SQL Server una identidad administrada asignada por el sistema en Azure Active Directory (AAD).
  2. Conceda a SQL Server acceso de identidad a la cuenta de almacenamiento agregando el rol RBAC "Colaborador de datos de Storage Blob" a la identidad del servidor. Para más información, consulte Auditoría en el almacenamiento mediante la autenticación de identidad administrada.
properties.storageAccountSubscriptionId

string

Especifica el identificador de suscripción de Blob Storage.

properties.storageEndpoint

string

Especifica el punto de conexión de Blob Storage (por ejemplo, https://MyAccount.blob.core.windows.net). Si el estado es Enabled, storageEndpoint o isAzureMonitorTargetEnabled es obligatorio.

Respuestas

Nombre Tipo Description
200 OK

DatabaseBlobAuditingPolicy

Establezca correctamente la directiva de auditoría de blobs de base de datos.

201 Created

DatabaseBlobAuditingPolicy

Se creó correctamente la directiva de auditoría de blobs de base de datos.

Other Status Codes

Respuestas de error: ***

  • 400 BlobAuditingIsNotSupportedOnResourceType: la auditoría de blobs no se admite actualmente para este tipo de recurso.

  • 400 InvalidDatabaseBlobAuditingPolicyCreateRequest: la solicitud de directiva de auditoría de blobs de base de datos de creación no existe o no tiene ningún objeto de propiedades.

  • 400 InvalidBlobAuditActionsAndGroups: acciones de auditoría o grupos de acciones no válidos.

  • 400 DataSecurityInvalidUserSuppliedParameter: el cliente proporcionó un valor de parámetro no válido.

  • 400 UpdateNotAllowedOnPausedDatabase: el usuario intentó realizar una actualización en una base de datos en pausa.

  • 400 BlobAuditingInsufficientStorageAccountPermissions: permisos de lectura o escritura insuficientes en la cuenta de almacenamiento proporcionada.

  • 400 BlobAuditingStorageAccountIsDisabled: la cuenta de almacenamiento proporcionada está deshabilitada.

  • 400 BlobAuditingNoServerIdentity: la identidad del servidor no está configurada correctamente.

  • 400 BlobAuditingStorageOutboundFirewallNotAllowed: la cuenta de almacenamiento no está en la lista de FQDN permitidos y, por lo tanto, las reglas de firewall de salida bloquearán la solicitud.

  • 400 InvalidBlobAuditActionsAndGroupsForDW: acciones de auditoría o grupos de acciones no admitidos para DW.

  • 400 BlobAuditingAdalTokenError: la operación no pudo obtener el token de acceso para la cuenta de almacenamiento porque se encontró un error de Azure Active Directory.

  • 400 BlobAuditingInvalidStorageAccountName: la cuenta de almacenamiento proporcionada no es válida o no existe.

  • 400 BlobAuditingInvalidStorageAccountCredentials: la cuenta de almacenamiento o la clave de acceso proporcionadas no son válidas.

  • 400 BlobAuditingIsNotSupportedOnGeoDr: la auditoría de blobs solo se puede configurar en bases de datos principales.

  • 400 InsufficientDiskSpaceForAuditing: espacio en disco insuficiente para ahorrar metadatos de auditoría en la base de datos

  • 400 InvalidBlobAuditActions: acción de auditoría no válida

  • 404 SourceDatabaseNotFound: la base de datos de origen no existe.

  • 404 DatabaseDoesNotExist: el usuario ha especificado un nombre de base de datos que no existe en esta instancia del servidor.

  • 500 DatabaseIsUnavailable: error al cargar. Vuelva a intentarlo más tarde.

Ejemplos

Create or update a database's azure monitor auditing policy with minimal parameters
Create or update a database's blob auditing policy with all parameters
Create or update a database's blob auditing policy with minimal parameters

Create or update a database's azure monitor 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/databases/testdb/auditingSettings/default?api-version=2021-11-01

{
  "properties": {
    "state": "Enabled",
    "isAzureMonitorTargetEnabled": true
  }
}

Sample Response

{
  "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/auditingSettings",
  "kind": "V12",
  "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/auditingSettings",
  "kind": "V12",
  "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 a database'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/databases/testdb/auditingSettings/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"
    ],
    "isAzureMonitorTargetEnabled": true
  }
}

Sample Response

{
  "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/auditingSettings",
  "kind": "V12",
  "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"
    ],
    "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/auditingSettings",
  "kind": "V12",
  "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"
    ],
    "isAzureMonitorTargetEnabled": true
  }
}

Create or update a database'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/databases/testdb/auditingSettings/default?api-version=2021-11-01

{
  "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/databases/testdb",
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/auditingSettings",
  "kind": "V12",
  "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/auditingSettings",
  "kind": "V12",
  "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
  }
}

Definiciones

Nombre Description
blobAuditingPolicyName

Nombre de la directiva de auditoría de blobs.

BlobAuditingPolicyState

Especifica el estado de la auditoría. Si el estado es Enabled, storageEndpoint o isAzureMonitorTargetEnabled son necesarios.

DatabaseBlobAuditingPolicy

Una directiva de auditoría de blobs de base de datos.

blobAuditingPolicyName

Nombre de la directiva de auditoría de blobs.

Nombre Tipo Description
default

string

BlobAuditingPolicyState

Especifica el estado de la auditoría. Si el estado es Enabled, storageEndpoint o isAzureMonitorTargetEnabled son necesarios.

Nombre Tipo Description
Disabled

string

Enabled

string

DatabaseBlobAuditingPolicy

Una directiva de auditoría de blobs de base de datos.

Nombre Tipo Description
id

string

Identificador del recurso.

kind

string

Tipo de recurso.

name

string

Nombre del recurso.

properties.auditActionsAndGroups

string[]

Especifica el Actions-Groups y las acciones que se van a auditar.

El conjunto recomendado de grupos de acciones que se van a usar es la siguiente combinación: se auditarán todas las consultas y procedimientos almacenados ejecutados en la base de datos, así como inicios de sesión correctos y con errores:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Esta combinación anterior también es el conjunto que se configura de forma predeterminada al habilitar la auditoría desde el Azure Portal.

Los grupos de acciones admitidos para auditar son (nota: elija solo grupos específicos que cubran las necesidades de auditoría. El uso de grupos innecesarios podría dar lugar a grandes cantidades de registros de auditoría):

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

Estos son grupos que cubren todas las instrucciones SQL y los procedimientos almacenados ejecutados en la base de datos, y no deben usarse en combinación con otros grupos, ya que esto dará lugar a registros de auditoría duplicados.

Para obtener más información, vea Grupos de acciones de auditoría de nivel de base de datos.

Para la directiva de auditoría de base de datos, también se pueden especificar acciones específicas (tenga en cuenta que las acciones no se pueden especificar para la directiva de auditoría del servidor). Las acciones admitidas para auditar son: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

El formulario general para definir una acción que se va a auditar es: {action} ON {object} BY {principal}

Tenga en cuenta que en el formato anterior puede hacer referencia a un objeto como una tabla, una vista o un procedimiento almacenado, o a una base de datos o esquema completo. En los últimos casos, se usan los formularios DATABASE:::{db_name} y SCHEMA::{schema_name}, respectivamente.

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

Para obtener más información, consulte Acciones de auditoría de nivel de base de datos.

properties.isAzureMonitorTargetEnabled

boolean

Especifica si los eventos de auditoría se envían a Azure Monitor. Para enviar los eventos a Azure Monitor, especifique "State" como "Enabled" y "IsAzureMonitorTargetEnabled" como true.

Al usar la API REST para configurar la auditoría, también se debe crear la categoría de registros de diagnóstico "SQLSecurityAuditEvents" en la base de datos. Tenga en cuenta que, para la auditoría de nivel de servidor, debe usar la base de datos "master" como {databaseName}.

Formato de URI de configuración 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 obtener más información, consulte Configuración de diagnóstico API REST o Configuración de diagnóstico de PowerShell.

properties.isManagedIdentityInUse

boolean

Especifica si se usa la identidad administrada para acceder al almacenamiento de blobs.

properties.isStorageSecondaryKeyInUse

boolean

Especifica si el valor storageAccountAccessKey es la clave secundaria del almacenamiento.

properties.queueDelayMs

integer

Especifica la cantidad de tiempo, en milisegundos, que puede transcurrir antes de exigir que se procesen las acciones de auditoría. El valor mínimo predeterminado es 1000 (1 segundo). El máximo es 2.147.483.647.

properties.retentionDays

integer

Especifica el número de días que se mantendrán en los registros de auditoría de la cuenta de almacenamiento.

properties.state

BlobAuditingPolicyState

Especifica el estado de la auditoría. Si el estado es Enabled, storageEndpoint o isAzureMonitorTargetEnabled son necesarios.

properties.storageAccountAccessKey

string

Especifica la clave de identificador de la cuenta de almacenamiento de auditoría. Si se especifica state is Enabled y storageEndpoint, no especifica storageAccountAccessKey usará la identidad administrada asignada por el sistema de SQL Server para acceder al almacenamiento. Requisitos previos para usar la autenticación de identidad administrada:

  1. Asigne SQL Server una identidad administrada asignada por el sistema en Azure Active Directory (AAD).
  2. Conceda a SQL Server acceso de identidad a la cuenta de almacenamiento agregando el rol RBAC "Colaborador de datos de Storage Blob" a la identidad del servidor. Para más información, consulte Auditoría en el almacenamiento mediante la autenticación de identidad administrada.
properties.storageAccountSubscriptionId

string

Especifica el identificador de suscripción de Blob Storage.

properties.storageEndpoint

string

Especifica el punto de conexión de Blob Storage (por ejemplo, https://MyAccount.blob.core.windows.net). Si el estado es Enabled, storageEndpoint o isAzureMonitorTargetEnabled es obligatorio.

type

string

Tipo de recurso.