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:
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.
En la pestaña Modelado, seleccione Administrar roles.
En la ventana Administrar roles, seleccione Nuevo para crear un rol.
En Roles, proporcione un nombre para el rol y seleccione ENTRAR.
Nota:
No se puede definir un rol con una coma, por ejemplo,
London,ParisRole
.En Seleccionar tablas, seleccione la tabla a la que quiere aplicar un filtro de seguridad de nivel de fila.
En Filtrar datos, use el editor predeterminado para definir los roles. Las expresiones creadas devuelven un valor true o false.
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.
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.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). 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.
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.
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.
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.
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.
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.
En la pestaña Modelado, seleccione Ver como.
Se abre la ventana Ver como roles, en la que se muestran los roles que ha creado.
Seleccione un rol que haya creado. A continuación, elija Aceptar para aplicar ese rol.
Los informes representan los datos pertinentes para ese rol.
También puede seleccionar Otro usuario y proporcionar un usuario determinado.
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.
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.
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.
En Power BI Report Server, seleccione los puntos suspensivos ( … ) que encontrará junto al informe.
Seleccione Administrar>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.
Para agregar un miembro, seleccione Agregar miembro.
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.
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.
Haga clic en Aceptar para aplicarlo.
Para quitar miembros, marque la casilla situada junto a sus nombres y seleccione Eliminar. Puede eliminar varios miembros al mismo tiempo.
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.
Contenido relacionado
¿Tiene más preguntas? Pruebe a preguntar a la comunidad de Power BI