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. 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.

    Screenshot of the Modeling tab, highlighting Manage roles.

  3. En la ventana Administrar roles, seleccione Crear.

    Screenshot of the Manage roles window, highlighting Create.

  4. En Roles, proporcione un nombre para el rol.

    Nota

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

  5. En Tablas, seleccione la tabla a la que quiere aplicar una regla DAX (expresión de análisis de datos).

  6. En el cuadro Expresión DAX de filtro de tabla, escriba las expresiones DAX. Esta expresión devuelve un valor de true o false. Por ejemplo: [Entity ID] = “Value”.

    Screenshot of the Manage roles window, highlighting an example DAX expression.

    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.

  7. Después de haber creado la expresión DAX, seleccione la marca de verificación situada encima del cuadro de expresión para validar la expresión.

    Screenshot of the Table filter DAX expression window, highlighting the checkmark.

    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).

  8. 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.

Screenshot of the apply Security Filter.

Definición de roles y reglas en Power BI mediante el editor de seguridad de nivel de fila mejorado (versión preliminar)

Puede definir de manera rápida y sencilla los roles de seguridad de nivel de fila y los filtros dentro de Power BI mediante el editor de seguridad de nivel de fila mejorado. 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 mediante el editor de seguridad de nivel de fila mejorado:

  1. En Power BI Desktop, habilite la versión preliminar yendo Archivos > Opciones y configuración > Opciones > Característica en vista previa (GB) y active "Editor de seguridad de nivel de fila mejorado". Como alternativa, puede usar este editor en el servicio editando el modelo de datos en el servicio Power BI.

  2. Importe datos en el modelo semántico de Power BI o configure una conexión de DirectQuery.

  3. En la cinta, seleccione Administrar roles.

    Screenshot of the Manage roles button in the Desktop ribbon.

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

    Screenshot of creating a new role in the enhanced row-level security editor.

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

    Screenshot of renaming a role in the enhanced row-level security editor.

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

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

    Screenshot of an example of using the default editor in the enhanced row-level security editor.

    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.

  8. Si lo desea, seleccione Cambiar al editor DAX para empezar a usar el editor DAX para definir un rol. 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.

    Screenshot of an example of using the dax editor in the enhanced row-level security editor.

    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.

    Screenshot of an example error dialog when switching from the DAX to default editor in enhanced row-level security editor.

  9. Seleccione Guardar.

Validar los roles en Power BI Desktop

Después de haber creado los roles, pruebe sus resultados en Power BI Desktop.

  1. En la pestaña Modelado, seleccione Ver como.

    Screenshot of the Modeling tab, highlighting View as.

    Se abre la ventana Ver como roles, en la que se muestran los roles que ha creado.

    Screenshot of the View as roles window with None selected.

  2. Seleccione un rol que haya creado. A continuación, elija Aceptar para aplicar ese rol.

    Los informes representan los datos pertinentes para ese rol.

  3. También puede seleccionar Otro usuario y proporcionar un usuario determinado.

    Screenshot of the View as roles window with an example user entered.

    Es mejor proporcionar el nombre principal de usuario (UPN), porque es el que usarán el servicio Power BI y Power BI Report Server.

    En Power BI Desktop, Otro usuario solo muestra otros resultados si usa la seguridad dinámica basada en las expresiones DAX. En este caso, debe incluir el nombre de usuario, así como el rol.

  4. Seleccione Aceptar.

    El informe se representa en función de lo que los filtros de RLS permiten al usuario ver.

    Nota

    La característica Ver como roles no funciona para los modelos de DirectQuery con inicio de sesión único (SSO) habilitado.

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 el servicio Power BI y siga estos pasos:

  1. En el servicio Power BI, seleccione el menú Más opciones para un modelo semántico. Este menú aparece cuando se mantiene el puntero sobre un nombre de modelo semántico, tanto si lo selecciona en el menú de navegación como en la página del área de trabajo.

    Screenshot showing the more options menu in the workspace.

    Screenshot showing the more options menu in navigation menu.

  2. Seleccione Seguridad.

    Screenshot showing the more options menu with Security selected.

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.

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

Screenshot showing how to add a member.

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.

Screenshot showing members in role.

Quitar miembros

Puede quitar miembros seleccionando la X junto a su nombre.

Screenshot showing how to remove a member.

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.

Screenshot of test as role option.

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.

Screenshot of Now viewing as dropdown for a specific person.

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.

Screenshot of Viewing to select a different report to test.

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