Seguridad de nivel de fila (RLS) con Power BI

La seguridad de nivel de fila (RLS) con Power BI puede usarse para restringir el acceso a los datos a determinados usuarios. Los filtros restringen el acceso a los datos en el nivel de fila y se pueden definir en roles. En el servicio Power BI, los usuarios con acceso a un área de trabajo tienen acceso a modelos semánticos del área de trabajo. RLS solo restringe el acceso a los datos para los usuarios con permisos de Visor . No se aplica a administradores, miembros o colaboradores.

Puede configurar RLS para los modelos de datos que se han importado en Power BI con Power BI. También puede configurar RLS en modelos semánticos que usan DirectQuery, como SQL Server. En el caso de las conexiones dinámicas de Analysis Services o Azure Analysis Services, puede configurar la seguridad de nivel de fila en el modelo, no en Power BI. La opción de seguridad no se muestra para los modelos semánticos de conexión dinámica.

Definir roles y reglas en Power BI Desktop

Puede definir roles y reglas en Power BI Desktop. Con este editor, puede alternar entre usar la interfaz desplegable predeterminada y una interfaz DAX. Al publicar en Power BI, publicará también las definiciones de roles.

Para definir roles de seguridad:

  1. Importar datos en el informe de Power BI Desktop o configurar una conexión de DirectQuery.

    Nota

    No puede definir roles en Power BI Desktop para conexiones dinámicas de Analysis Services. Debe hacerlo en el modelo de Analysis Services.

  2. En la pestaña Modelado, seleccione Administrar roles.

    Captura de pantalla de la pestaña Modelado, resaltando Administrar roles

  3. En la ventana Administrar roles, seleccione Nuevo para crear un rol.

    Captura de pantalla de la ventana Administrar roles, resaltando el botón Crear nuevo rol.

  4. En Roles, proporcione un nombre para el rol y seleccione ENTRAR.

    Captura de pantalla de la ventana Administrar roles, resaltando Cambiar el nombre de un rol.

    Nota:

    No se puede definir un rol con una coma, por ejemplo, London,ParisRole.

  5. En Seleccionar tablas, seleccione la tabla a la que quiere aplicar un filtro de seguridad de nivel de fila.

  6. En Filtrar datos, use el editor predeterminado para definir los roles. Las expresiones creadas devuelven un valor true o false.

    Captura de pantalla del editor predeterminado de la ventana Administrar roles para definir la seguridad de nivel de fila.

    Nota:

    No todos los filtros de seguridad de nivel de fila admitidos en Power BI se pueden definir mediante el editor predeterminado. Las limitaciones incluyen expresiones que hoy solo se pueden definir mediante DAX, incluidas reglas dinámicas como username() o userprincipalname(). Para definir roles con estos filtros, empiece a usar el editor DAX.

  7. Si lo desea, seleccione Cambiar al editor DAX para empezar a usar el editor DAX para definir su rol. Las expresiones DAX devuelven un valor de true o false. Por ejemplo: [Entity ID] = “Value”. El editor DAX se completa con autocompletar para fórmulas (intellisense). Puede seleccionar la marca de verificación situada encima del cuadro de expresión para validar la expresión y el botón X situado encima del cuadro de expresión para revertir los cambios.

    Captura de pantalla de la ventana Administrar roles, resaltando una expresión DAX de ejemplo

    Nota

    Puede usar username() en esta expresión. Tenga en cuenta que username() tiene el formato DOMINIO\usuario en Power BI Desktop. En el servicio Power BI y en Power BI Report Server, está en el formato del nombre principal de usuario (UPN). Como alternativa, puede usar userprincipalname(), que siempre devuelve el usuario en el formato de su nombre principal de usuario, username@contoso.com. Además, en este cuadro de expresión utilice comas para separar los argumentos de la función DAX, incluso si usa una configuración regional que normalmente usa separadores de punto y coma (por ejemplo, francés o alemán).

  8. Para volver al editor predeterminado, seleccione Cambiar al editor predeterminado. Todos los cambios que se hacen en cualquiera de las interfaces del editor se conservarán cuando sea posible cambiar las interfaces. Al definir un rol mediante el editor DAX que no se puede definir en el editor predeterminado, si intenta cambiar al editor predeterminado, verá una advertencia indicándole que cambiar el editor puede hacer que se pierda información. Para conservar esta información, seleccione Cancelar y siga editando este rol en el editor DAX.

    Captura de pantalla del cuadro de diálogo que confirma que desea cambiar al editor predeterminado.

    Nota:

    En este cuadro de expresión, utilice comas para separar los argumentos de la función DAX, incluso si usa una configuración regional que normalmente usa separadores de punto y coma (por ejemplo, francés o alemán).

  9. Seleccione Guardar.

No puede asignar usuarios a un rol en Power BI Desktop. Los asigna en el servicio Power BI. Para habilitar la seguridad dinámica en Power BI Desktop, puede usar las funciones DAX username() y userprincipalname() . Las relaciones deben estar configuradas correctamente.

De forma predeterminada, el filtrado de la seguridad de nivel de fila utiliza filtros unidireccionales, independientemente de si las relaciones se establecen de forma unidireccional o bidireccional. Para habilitar manualmente un filtro cruzado bidireccional con seguridad de nivel de fila, seleccione la relación y marque la casilla de verificación Aplicar filtro de seguridad en ambas direcciones. Tenga en cuenta que, si una tabla participa en varias relaciones bidireccionales, solo puede seleccionar esta opción para una de esas relaciones. Active esta opción al implementar también la seguridad de nivel de fila dinámica en el nivel del servidor, donde la seguridad de nivel de fila se basa en el nombre de usuario o el identificador de inicio de sesión.

Para más información, consulte los artículos técnicos Filtrado cruzado bidireccional con DirectQuery en Power BI y Protección del modelo semántico tabular de BI.

Captura de pantalla de la configuración de relación del modelo para aplicar el filtro de seguridad en ambas direcciones.

Administración de la seguridad en el modelo

Para administrar la seguridad en el modelo semántico, abra el área de trabajo donde guardó el modelo semántico en Fabric y siga estos pasos:

  1. En Fabric, seleccione el menú Más opciones de un modelo semántico. Este menú aparece al mover el puntero sobre el nombre de un modelo semántico.

    Captura de pantalla que muestra el menú Más opciones en el menú de navegación.

  2. Seleccione Seguridad.

    Captura de pantalla que muestra el menú Más opciones con Seguridad seleccionado.

Seguridad le llevará a la página Seguridad en el nivel de rol para agregar miembros a un rol creado. Colaborador (y roles de área de trabajo superiores) verá Seguridad y puede asignar usuarios a un rol.

Miembros

Agregar miembros

En el servicio Power BI, puede agregar un miembro al rol escribiendo la dirección de correo electrónico o el nombre del usuario o el grupo de seguridad. No se pueden agregar grupos creados en Power BI. Puede agregar miembros externos a la organización.

Puede usar los siguientes grupos para configurar la seguridad de nivel de fila.

Tenga en cuenta que los grupos de Microsoft 365 no son compatibles y no se pueden agregar a ningún rol.

Captura de pantalla en la que se muestra cómo agregar un miembro.

También puede ver cuántos miembros forman parte del rol por el número entre paréntesis junto al nombre del rol o junto a Miembros.

Captura de pantalla que muestra los miembros en un rol.

Quitar miembros

Puede quitar miembros seleccionando la X junto a su nombre.

Captura de pantalla que muestra cómo quitar un miembro.

Validación del rol en el servicio Power BI

Puede validar que el rol definido funciona correctamente en el servicio Power BI probándolo.

  1. Seleccione Más opciones (...) junto al rol.
  2. Seleccione Probar como rol.

Captura de pantalla de la opción Prueba como rol.

Se le redirigirá al informe publicado desde Power BI Desktop con este modelo semántico, si existe. Los paneles no están disponibles para las pruebas mediante la opción Probar como rol.

En el encabezado de la página, se muestra el rol que se está aplicando. Pruebe otros roles, una combinación de roles o una persona específica seleccionando Ahora se muestra como. Aquí verá detalles de permisos importantes relacionados con la persona o el rol que se está probando. Para más información sobre cómo interactúan los permisos con RLS, consulte Experiencia del usuario de RLS.

Captura de pantalla de

Pruebe otros informes conectados al modelo semántico seleccionando Vista en el encabezado de página. Solo puede probar informes ubicados en el mismo área de trabajo que el modelo semántico.

Captura de pantalla de

Para volver a la vista normal, seleccione Volver a seguridad de nivel de fila.

Nota

La característica Probar como rol no funciona para los modelos de DirectQuery con inicio de sesión único (SSO) habilitado. Además, no todos los aspectos de un informe pueden validarse en la característica Prueba como rol, incluidas las visualizaciones de Preguntas y respuestas, las visualizaciones de Conclusiones rápidas y Copilot.

Uso de la función DAX username() o userprincipalname()

Puede aprovechar las ventajas de las funciones DAX username() o userprincipalname() dentro del conjunto de datos. Puede usarlas dentro de expresiones en Power BI Desktop. Cuando publique el modelo, se utilizará dentro del servicio Power BI.

En Power BI Desktop, username() devolverá un usuario con el formato de DOMINIO\Usuario y userprincipalname() lo devolverá con el formato de user@contoso.com.

En el servicio Power BI, username() y userprincipalname() devolverán ambos el nombre principal de usuario (UPN) del usuario. Es similar a una dirección de correo electrónico.

Uso de RLS con áreas de trabajo en Power BI

Si publica un informe de Power BI Desktop en un área de trabajo del servicio Power BI, los roles de RLS se aplican a los miembros a los que se les asigna el rol Espectador en el área de trabajo. Incluso si visores se conceden permisos de compilación al modelo semántico, RLS todavía se aplica. Por ejemplo, si los visores con permisos de compilación usan la función Analizar en Excel, la vista de los datos se protegerá mediante RLS. Los miembros del área de trabajo con los roles de administrador,miembro o colaborador tendrán permiso de edición para el conjunto de datos y, por lo tanto, no se les aplica RLS. Si desea que RLS se aplique a las personas de un área de trabajo, solo puede asignarles el rol Visor. Obtenga más información sobre los roles en las áreas de trabajo.

Consideraciones y limitaciones

Aquí puede ver las limitaciones actuales de la seguridad de nivel de fila en los modelos en la nube:

  • Si anteriormente definió roles y reglas en el servicio Power BI, debe volver a crearlos en Power BI Desktop.
  • Solo puede definir RLS en los modelos semánticos creados con Power BI Desktop. Si desea habilitar RLS para los modelos semánticos creados con Excel, primero debe convertir los archivos en archivos de Power BI Desktop (PBIX). Más información.
  • Las entidades de servicio no se pueden agregar a un rol RLS. Por tanto, RLS no se aplica a las aplicaciones que usan una entidad de servicio como identidad efectiva final.
  • Solo se admiten conexiones de importación y de DirectQuery. Las conexiones dinámicas con Analysis Services se controlan en el modelo local.
  • La característica Probar como rol/Ver como roles no funciona para los modelos de DirectQuery con inicio de sesión único (SSO) habilitado.
  • La característica Probar como rol/Ver como rol solo mostrará los informes del área de trabajo de los modelos semánticos.
  • La característica Probar como rol o ver como rol no funciona para los informes paginados.

Tenga en cuenta que si un informe de Power BI hace referencia a una fila con RLS configurado, el mismo mensaje se muestra como para un campo eliminado o no existente. estos usuarios pensarían que el informe ha dejado de funcionar.

Preguntas más frecuentes

Pregunta: ¿Qué ocurre si tengo roles y reglas creados previamente para un conjunto de datos en el servicio Power BI? ¿Siguen funcionando si no hago nada?
Respuesta: No, los objetos visuales no se representarán correctamente. Tiene que volver a crear los roles y las reglas en Power BI Desktop y, después, publicarlos en el servicio Power BI.

Pregunta: ¿Puedo crear estos roles para orígenes de datos de Analysis Services?
Respuesta: Puede hacerlo si importa los datos a Power BI Desktop. Si usa una conexión dinámica, no podrá configurar RLS en el servicio Power BI. Usted define RLS en el modelo local de Analysis Services.

Pregunta: ¿Puedo usar RLS para limitar las columnas o medidas accesibles por mis usuarios?
Respuesta: No, si un usuario tiene acceso a una fila de datos determinada, puede ver todas las columnas de datos de esa fila. Para restringir el acceso a las columnas y los metadatos de las columnas, considere la posibilidad de usar la seguridad de nivel de objeto.

Pregunta: ¿Permite RLS ocultar datos detallados pero dar acceso a datos resumidos en objetos visuales?
Respuesta: No, aunque proteja las filas de datos individuales, los usuarios siempre pueden ver los detalles o los datos resumidos.

Pregunta: Mi origen de datos ya tiene definidos roles de seguridad (por ejemplo, roles de SQL Server o de SAP BW). ¿Cuál es la relación entre estos roles y RLS?
Respuesta: La respuesta depende de si se importan datos o se usa DirectQuery. Si se van a importar datos en el conjunto de datos de Power BI, no se usarán los roles de seguridad del origen de datos. En este caso, se debe definir RLS para aplicar las reglas de seguridad para los usuarios que se conectan en Power BI. Si usa DirectQuery, se usan los roles de seguridad en el origen de datos. Cuando un usuario abre un informe, Power BI envía una consulta al origen de datos subyacente, que aplica las reglas de seguridad a los datos basándose en las credenciales del usuario.

Pregunta: ¿Un usuario puede pertenecer a más de un rol?
Respuesta: Un usuario puede pertenecer a varios roles y los roles son aditivos. Por ejemplo, si un usuario pertenece a los roles "Ventas" y "Marketing", puede ver los datos de ambos roles.

¿Tiene alguna pregunta? Pruebe a preguntar a la comunidad de Power BI¿Alguna sugerencia? Ideas para contribuir a mejorar Power BI