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 miembros de un área de trabajo tienen acceso a conjuntos de datos del área de trabajo. RLS no restringe este acceso a datos.

Puede configurar RLS para los modelos de datos que se han importado en Power BI con Power BI Desktop. También puede configurar RLS en conjuntos de datos que utilizan 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 Desktop. La opción de seguridad no se mostrará 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. Al publicar en Power BI, publica también definiciones de roles.

Para definir los roles de seguridad, siga estos pasos.

  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.

    Selección de Administrar roles

  3. En la ventana Administrar roles, seleccione Crear.

    Seleccionar Crear

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

  5. En Tablas, seleccione la tabla a la que quiere aplicar una regla DAX.

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

    Ventana Administrar roles

    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.

    Validación de la expresión DAX

    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. 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 Desktop y Protección del modelo semántico tabular de BI.

Aplicar filtro de seguridad

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.

    Selección de Ver como roles

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

    Ventana Ver como roles

  2. Seleccione un rol que haya creado y después Aceptar para aplicarlo.

    Los informes representan los datos pertinentes para ese rol.

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

    Selección de otro usuario

    Es mejor proporcionar el nombre principal de usuario (UPN), ya que 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.

  4. Seleccione Aceptar.

    El informe se representará en función de lo que pueda ver ese usuario.

Ahora que ha terminado de validar los roles en Power BI Desktop, continúe y publique el informe en el servicio Power BI.

Administración de la seguridad en el modelo

Para administrar la seguridad en el modelo de datos, abra el área de trabajo donde guardó el informe en el servicio Power BI y siga estos pasos:

  1. En el servicio Power BI, seleccione el menú Más opciones para un conjunto de datos. Este menú aparece cuando se mantiene el puntero sobre el nombre de un conjunto de los mismos, tanto si se selecciona desde el menú de navegación como desde la página del área de trabajo.

    Menú Más opciones del área de trabajo

    Menú Más opciones en el menú de navegación

  2. Seleccione Seguridad.

    Selección de Seguridad en el menú Más opciones

Esto le llevará a la página Seguridad en el nivel de rol para agregar miembros a un rol creado en Power BI Desktop. Solo los propietarios del conjunto de datos verán la opción Seguridad. Si el conjunto de datos está en un grupo, solo los administradores del grupo verán la opción de seguridad.

Solo puede crear o modificar roles dentro de Power BI Desktop.

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.

  • Grupo de distribución
  • Grupo habilitado para correo electrónico
  • Security Group

Sin embargo, tenga en cuenta que los grupos de Office 365 no se admiten y no se pueden agregar a ningún rol.

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.

Miembros de rol

Quitar miembros

Puede quitar miembros seleccionando la X junto a su nombre.

Quitar 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 datos como rol.

Probar como rol

Verá los informes que están disponibles para este rol. Los paneles no se muestran en esta vista. En el encabezado de la página, se muestra el rol que se está aplicando.

Ahora se muestra como

Pruebe otros roles, o una combinación de roles, seleccionando Ahora se muestra como.

Probar otros roles

Puede optar por ver los datos como una persona específica o puede seleccionar una combinación de roles disponibles para validar que funcionan.

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

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 una nueva experiencia de área de trabajo dentro del servicio Power BI, los roles de RLS se aplican a los miembros a los que se les asigna el rol Visor en el área de trabajo. Aunque los visores tengan permisos de compilación para el conjunto de datos, se sigue aplicando RLS. 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 nuevas.

Advertencia

Si ha configurado un área de trabajo clásica para que los miembros tengan permisos de edición, los roles de RLS no se aplicarán a ellos. Los usuarios pueden ver todos los datos. Obtenga más información sobre las áreas de trabajo clásicas.

Configuración de grupo

Limitaciones

Las limitaciones actuales para la seguridad de nivel de fila en los modelos en la nube son las siguientes:

  • 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 conjuntos de datos creados con Power BI Desktop. Si quiere habilitar RLS para conjuntos de datos creados con Excel, debe convertir primero 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 aplicará 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.

Problemas conocidos

Hay un problema conocido en el que se produce un mensaje de error al intentar publicar un informe publicado anteriormente desde Power BI Desktop. El escenario es el siguiente:

  1. Ana tiene un conjunto de datos publicado en el servicio Power BI y ha configurado RLS.

  2. Ana actualiza el informe en Power BI Desktop y vuelve a publicarlo.

  3. Ana recibe un error.

Solución alternativa: vuelva a publicar el archivo de Power BI Desktop desde el servicio Power BI hasta que se solucione este problema. Para ello, seleccione Obtener datos > Archivos.

Preguntas más frecuentes

Pregunta: ¿Qué ocurre si tengo roles y reglas creados previamente para un conjunto de datos en el servicio Power BI? ¿Seguirán funcionando si no hago nada?
Respuesta: No, los objetos visuales no se representarán correctamente. Tendrá 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 si importa los datos en Power BI Desktop. Si usa una conexión dinámica, no podrá configurar RLS en el servicio Power BI. Esto se define 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.

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

Pasos siguientes