Compartir a través de


Seguridad de nivel de fila (RLS) en Power BI Report Server

La configuración de Seguridad de nivel de fila (RLS) en Power BI Report Server puede provocar la restricción del acceso a los datos para determinados usuarios. Los filtros restringen el acceso a los datos en el nivel de fila y se pueden definir en roles. Si usa los permisos predeterminados de Power BI Report Server, cualquier usuario que tenga permisos de publicador o administrador de contenido en el informe de Power BI podrá asignar miembros a los roles del informe en cuestión.

Puede configurar RLS para los informes que se han importado en Power BI con Power BI Desktop. También puede configurar RLS en los informes que usan DirectQuery, como SQL Server. Tenga en cuenta que RLS no se respetará si su conexión DirectQuery usa la autenticación integrada para lectores de informes. En el caso de las conexiones dinámicas de Analysis Services, puede configurar Seguridad de nivel de fila en el modelo local. La opción de seguridad no se muestra para conjuntos de datos 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 funciones.

  3. En la ventana Administrar roles de seguridad , seleccione + Nuevo para crear un nuevo rol.

    Captura de pantalla de la ventana Administrar roles de seguridad, resaltando el botón + Nuevo que crea un nuevo rol.

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

    Captura de pantalla de la sección Roles de la ventana Administrar roles de seguridad. El campo de nombre está resaltado donde puede cambiar el nombre del rol.

    Nota

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

  5. En Tablas, seleccione la tabla a la que desea aplicar un filtro de seguridad de nivel de fila.

  6. En Reglas, use el editor predeterminado para definir el rol. Las expresiones creadas devuelven un valor true o false.

    Captura de pantalla de la ventana Administrar roles de seguridad, en la que se muestra el editor predeterminado 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. Entre las limitaciones se incluyen las expresiones que actualmente solo se pueden definir mediante expresiones de análisis de datos (DAX), incluidas reglas dinámicas como username() o userprincipalname(). Para definir roles con estos filtros, empiece a usar el editor DAX.

  7. Opcionalmente, seleccione Cambiar al editor DAX para cambiar al uso del editor DAX para definir el 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 de seguridad, en la que se muestra el editor DAX. Se resalta una expresión DAX de ejemplo.

    Nota

    Puede usar username() dentro de esta expresión, pero tenga en cuenta que username() tiene el formato de DOMAIN\username 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). Además, en este cuadro de expresión, use comas para separar argumentos de función DAX incluso si usa una configuración regional que normalmente usa separadores de punto y coma, como francés o alemán.

  8. Para volver al editor predeterminado, seleccione Cambiar al editor predeterminado. Cuando sea posible, todos los cambios realizados en cualquiera de las interfaces del editor se conservan al cambiar las interfaces. Puede definir un rol mediante el editor DAX que no se puede definir en el editor predeterminado. Sin embargo, si lo hace, se le pedirá una advertencia si intenta cambiar al editor predeterminado. La advertencia indica que cambiar de editor podría dar lugar a 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, use comas para separar argumentos de función DAX incluso si usa una configuración regional que normalmente usa separadores de punto y coma, como 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. Puede habilitar la seguridad dinámica en Power BI Desktop utilizando las funciones DAX, como username() y userprincipalname(), y asegurándose de tener configuradas las relaciones adecuadas.

Filtrado cruzado bidireccional

De forma predeterminada, el filtrado de Seguridad de nivel de fila se lleva a cabo mediante filtros unidireccionales, independientemente de si las relaciones se establecen de forma unidireccional o bidireccional. Puede habilitar manualmente un filtro cruzado bidireccional con Seguridad de nivel de fila.

  • Seleccione la relación y marque la casilla Aplicar filtro de seguridad en ambas direcciones.

    Captura de pantalla que muestra cómo aplicar el filtro de seguridad.

Marque la casilla al implementar la seguridad dinámica de nivel de fila en función del nombre de usuario o el id. de inicio de sesión.

Para obtener más información, vea las notas del producto Filtrado cruzado bidireccional con DirectQuery en Power BI Desktop y Protección del modelo semántico tabular de BI.

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.

    Captura de pantalla de la pestaña Modelado, resaltando Vista como

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

    Captura de pantalla de la ventana Ver como roles con Ninguno seleccionado

  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.

    Captura de pantalla de la ventana Ver como roles con un usuario de ejemplo escrito

    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.

Adición de miembros a roles

Después de guardar el informe en Power BI Report Server, puede administrar la seguridad o agregar o quitar miembros del servidor. Solo los usuarios con permisos de publicador o administrador de contenido para el informe tienen la opción de Seguridad de nivel de fila disponible y sin sombrear.

Si el informe no tiene los roles necesarios, deberá abrirlo en Power BI Desktop, agregar o modificar los roles y volver a guardarlo en Power BI Report Server.

  1. En Power BI Desktop, guarde el informe en Power BI Report Server. Debe usar la versión de Power BI Desktop para Power BI Report Server.

  2. En Power BI Report Server, seleccione los puntos suspensivos ( ) que encontrará junto al informe.

  3. Seleccione Administrar>Seguridad de nivel de fila.

    Captura de pantalla que muestra cómo administrar la seguridad de nivel de fila.

    En la página Seguridad de nivel de fila, puede agregar miembros a un rol que haya creado en Power BI Desktop.

  4. Para agregar un miembro, seleccione Agregar miembro.

  5. Escriba el usuario o grupo en el cuadro de texto en el formato de nombre de usuario (DOMINIO\usuario) y seleccione los roles que quiera asignarles. Este miembro tiene que estar dentro de su organización.

    Captura de pantalla que muestra cómo agregar un miembro al rol.

    Según cómo haya configurado Active Directory, también podrá escribir el nombre principal de usuario. En ese caso, el servidor de informes mostrará el nombre de usuario correspondiente en la lista.

  6. Haga clic en Aceptar para aplicarlo.

  7. Para quitar miembros, marque la casilla situada junto a sus nombres y seleccione Eliminar. Puede eliminar varios miembros al mismo tiempo.

    Captura de pantalla que muestra cómo eliminar miembros.

username() y 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. Al publicar el modelo, Power BI Report Server las usará.

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 Power BI Report Server, tanto username() y como userprincipalname() devuelven el nombre principal de usuario (UPN) del usuario, con un aspecto similar al de la dirección de correo electrónico.

Si usa la autenticación personalizada en Power BI Report Server, se devolverá el formato de nombre de usuario que haya configurado para los usuarios.

Consideraciones y limitaciones

Estas son las limitaciones actuales para Seguridad de nivel de fila en los modelos de Power BI.

Los usuarios que hayan elegido que los informes usen la función DAX username() podrán observar un comportamiento diferente; ahora, se devolverá el nombre principal de usuario (UPN), excepto al usar DirectQuery con la seguridad integrada. Puesto que en este escenario no se respeta RLS, el comportamiento será el mismo.

Solo puede definir RLS en conjuntos de datos creados con Power BI Desktop. Para habilitar RLS en conjuntos de datos creados con Excel, debe convertir primero los archivos en archivos de Power BI Desktop (PBIX). Obtenga más información sobre la conversión de archivos de Excel.

Solo se admiten las conexiones Extract, Transform, Load (ETL) y DirectQuery que usen credenciales almacenadas. Las conexiones dinámicas con Analysis Services y las conexiones DirectQuery que usen la autenticación integrada se gestionarán en el origen de datos subyacente.

Si usa la seguridad integrada con DirectQuery, es posible que sus usuarios observen que:

  • La característica RLS está inhabilitada y se devuelven todos los datos.
  • Los usuarios no pueden actualizar sus asignaciones de roles y reciben un error en la página Administrar RLS.
  • En el caso de la función DAX de nombre de usuario, continuará recibiendo el nombre de usuario como DOMINIO\usuario.

Los autores de informes no tendrán acceso para ver los datos del informe en Power BI Report Server hasta que se asignen algún rol según corresponda tras cargar el informe.

Las asignaciones de roles mediante la pertenencia a grupos solo se admiten cuando Power BI Report Server está configurado para ejecutarse con la autenticación NTLM o Kerberos. Los servidores que se ejecutan con autenticación personalizada o Windows Basic necesitan que los usuarios se asignen explícitamente a los roles.

Preguntas frecuentes

¿Puedo crear estos roles para orígenes de datos de Analysis Services?

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. RLS se define en el modelo local de Analysis Services.

¿Puedo usar RLS para limitar las columnas o medidas accesibles por mis usuarios?

No. Si un usuario tiene acceso a una fila de datos determinada, ese usuario puede ver todas las columnas de datos de esa fila.

¿Permite RLS ocultar datos detallados pero dar acceso a datos resumidos en objetos visuales?

No, aunque proteja las filas de datos individuales, los usuarios siempre pueden ver los detalles o los datos resumidos.

¿Puedo agregar nuevos roles en Power BI Desktop si ya tengo roles existentes y miembros asignados?

Sí, si ya tiene definidos roles existentes y miembros asignados en Power BI Report Server, podrá realizar roles adicionales y volver a publicar el informe sin que ello afecte a las asignaciones actuales.

¿Tiene más preguntas? Pruebe a preguntar a la comunidad de Power BI