Compartir a través de


Uso de una identidad administrada para ejecutar una directiva de actualización

Se aplica a: ✅Azure Data Explorer

La directiva de actualización debe configurarse con una identidad administrada en los escenarios siguientes:

  • Cuando la consulta de directiva de actualización hace referencia a tablas de otras bases de datos
  • Cuando la consulta de directiva de actualización hace referencia a tablas con una directiva de seguridad de nivel de fila habilitada

Una directiva de actualización configurada con una identidad administrada se realiza en nombre de la identidad administrada.

En este artículo, aprenderá a configurar una identidad administrada asignada por el sistema o asignada por el usuario y a crear una directiva de actualización mediante esa identidad.

Requisitos previos

Configuración de una identidad administrada

Hay dos tipos de identidades administradas:

  • Asignado por el sistema: una identidad asignada por el sistema está conectada al clúster y se quita cuando se quita el clúster. Solo se permite una identidad asignada por el sistema por clúster.

  • Asignado por el usuario: una identidad administrada asignada por el usuario es un recurso de Azure independiente. Se pueden asignar varias identidades asignadas por el usuario al clúster.

Seleccione una de las pestañas siguientes para configurar el tipo de identidad administrada preferido.

  1. Siga los pasos para agregar una identidad asignada por el usuario.

  2. En Azure Portal, en el menú izquierdo del recurso de identidad administrada, seleccione Propiedades. Copie y guarde el identificador de inquilino y el identificador de entidad de seguridad para usarlos en los pasos siguientes.

    Captura de pantalla del área de Azure Portal con identificadores de identidad administrada.

  3. Ejecute el siguiente comando de directiva .alter-merge managed_identity, reemplazando <objectId> por el identificador de entidad de seguridad de identidad administrada del paso anterior. Este comando establece una directiva de identidad administrada en el clúster que permite usar la identidad administrada con la directiva de actualización.

    .alter-merge cluster policy managed_identity ```[
        {
          "ObjectId": "<objectId>",
          "AllowedUsages": "AutomatedFlows"
        }
    ]```
    

    Nota:

    Para establecer la directiva en una base de datos específica, use database <DatabaseName> en lugar de cluster.

  4. Ejecute el comando siguiente para conceder permisos del Visor de bases de datos de identidad administrada a todas las bases de datos a las que hace referencia la consulta de directiva de actualización.

    .add database <DatabaseName> viewers ('aadapp=<objectId>;<tenantId>')
    

    Reemplace por <DatabaseName> la base de datos pertinente, <objectId> por el identificador de entidad de seguridad de identidad administrada del paso 2 y <tenantId> por el id. de inquilino del id. de inquilino de Microsoft Entra del paso 2.

Crear una directiva de actualización

Seleccione una de las pestañas siguientes para crear una directiva de actualización que se ejecute en nombre de una identidad administrada asignada por el usuario o asignada por el sistema.

Ejecute el comando .alter table policy update con la ManagedIdentity propiedad establecida en el identificador de objeto de identidad administrada.

Por ejemplo, el siguiente comando modifica la directiva de actualización de la tabla MyTable de la base de datos MyDatabase. Es importante tener en cuenta que los Source parámetros y Query solo deben hacer referencia a objetos dentro de la misma base de datos donde se define la directiva de actualización. Sin embargo, el código contenido dentro de la función especificada en el Query parámetro puede interactuar con tablas ubicadas en otras bases de datos. Por ejemplo, la función MyUpdatePolicyFunction() puede acceder OtherTable en nombre OtherDatabase de una identidad administrada asignada por el usuario. <objectId> debe ser un identificador de objeto de identidad administrada.

.alter table MyDatabase.MyTable policy update
```
[
    {
        "IsEnabled": true,
        "Source": "MyTable",
        "Query": "MyUpdatePolicyFunction()",
        "IsTransactional": false,
        "PropagateIngestionProperties": false,
        "ManagedIdentity": "<objectId>"
    }
]
```