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

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 en 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:

  • Asignada 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 el 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 objeto 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 siguiente comando para conceder permisos al Visor de bases de datos de identidad administrada en 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 <DatabaseName> por 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 de Microsoft Entra del paso 2.

Creación de una directiva de actualización

Seleccione una de las siguientes pestañas para crear una directiva de actualización que se ejecutará 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 MyDatabase la base de datos que hace referencia a la tabla OtherTable en la base de datos OtherDatabase en nombre 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": "UpdatePolicyFunction",
        "IsTransactional": false,
        "PropagateIngestionProperties": false,
        "ManagedIdentity": "<objectId>"
    }
]
```