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
- Un clúster y una base de datos Crean un clúster y una base de datos.
- Permisos AllDatabasesAdmin en la base de datos.
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.
Siga los pasos para agregar una identidad asignada por el usuario.
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.
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 decluster
.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>"
}
]
```