Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
8 months ago

Navegación de páginas con Roles RLS

Tengo una tabla llamada Departamentos, tengo la columna departamental como Finanzas, Comercial ,...

He creado roles según cada departamento

Además, tengo el panel de navegación de páginas adjunto arriba

Necesito que esta navegación se vea afectada por el Rol RLS

Por ejemplo: si Roles equivalen a finanzas, la navegación de la página debe mostrar solo finanzas

6 Replies

  • @shaher12

    Navegación dinámica usando formato condicional

    1. Crear una tabla de navegación
      • Crea una tabla con columnas:
        • Nombre de página (por ejemplo, Finanzas, Comercial)
        • PageDisplayName (nombre amistoso)
        • PageURL o PageIndex (opcional si usas marcadores)
      • Esta tabla debe incluir todas las páginas a las que quieras navegar.
    2. Aplicar RLS a esta tabla
      • Aplica las mismas reglas RLS a esta tabla de navegación que hiciste con los Departamentos.
      • Por ejemplo, si el usuario pertenece a Finanzas, solo la fila de Finanzas seguirá siendo visible.
    3. Crear un visual de navegación
      • Usa una tabla o botón con formato condicional:
        • Para botones: Usa Acción → navegación de páginas → Basado en el campo.
        • Para tablas: Utiliza Acción → Formato condicional → URL web o navegación por páginas.
    4. Vincular la navegación a RLS
      • Cuando RLS filtra la tabla de navegación, solo aparecerán la(s) página(s) permitida(s).
      • Si usas botones, puedes crear una medida como:
    SelectedPage =
    SELECTEDVALUE(Navigation[PageName])

    Luego configura la propiedad de navegación de página del botón en esta medida.
    Importante: No puedes ocultar páginas de informes reales dinámicamente en Power BI Service; Solo puedes controlar qué opciones de navegación aparecen. Si el usuario conoce la URL de la página, aún podría acceder a ella a menos que apliques RLS a los elementos visuales de esa página.

    Si esta respuesta te ha servido de algo, aceptaría encantado 👍la alegría de ver funcionar una medida DAX a la primera sin necesidad de otro FILTRO.

    Por favor, márcalo como la solución correcta. Ayuda a otros miembros de la comunidad a encontrar su camino más rápido (y les salva de otro bucle 🌀 interminable).

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Gracias por tu interés, pero
      Es Power BI Server, no servicio
      Creo que no hay solución para ello

  • La seguridad a nivel de página no existe. No pierdas el tiempo.

    Las páginas de navegación aportan un valor muy limitado. Deberías centrarte en reducir el número de clics entre usuario e insight, no en aumentarlos.

  • @shaher12,

    Gracias @lbendlin y @Zanqueta por tu respuesta a la consulta.

    No hemos tenido noticias tuyas sobre la última respuesta y solo volvíamos a comprobar si tu consulta había sido respondida.
    Si no, responderé con más detalles e intentaremos ayudar.

    Gracias.

  • @shaher12 Hola,

    RLS no controla la visibilidad de la página del informe, y los visuales del Page/Bookmark Navigator no pueden filtrarse con RLS.

    Tu mejor opción serán opciones de apoyo para lograr navegación basada en roles

    • Lo mejor para ocultar páginas: Audiencias de Power BI App


    - Publica el informe en una app.
    - Crear audiencias por departamento e incluir solo las páginas relevantes para cada audiencia.
    - Añadir usuarios/grupos a la audiencia correspondiente. (Separado de RLS, pero con la experiencia de usuario más sencilla/limpia.)

    • Página de navegación personalizada impulsada por RLS (basada en datos)


    - Crear una tabla de navegación: NombreDepágina, Ordenar, Departamento, (opcional) ReportSectionId o URL completa de Enlace Profundo.
    - Aplicar RLS en la navegación por departamento.
    - Crear una tabla con un listado visual de Nombre de página (filtrado por RLS).
    - Opciones de navegación:
    - Drillthrough: Añadir una clave común (por ejemplo, NombreDepágina) a los filtros Drillthrough de cada página objetivo; los usuarios hacen clic derecho en la fila → Taladrar a través de → página objetivo.
    - Enlace profundo: Guarda el id de sección (o URL completo) de reporte de cada página en la Navegación y utiliza un campo de URL web en la tabla para abrir esa página con un solo clic. RLS garantiza que los usuarios solo vean los enlaces que pueden ver.

    • Informes superficiales separados por departamento


    - Un solo conjunto de datos, múltiples informes "ligeros" con solo las páginas relevantes.
    - Distribuir a través de audiencias de aplicaciones o aplicaciones separadas. Es más fácil de mantener con un conjunto de datos compartido.

    Lo que no funcionará

    • El Navegador de Páginas/Navegador de Marcadores no puede ser filtrado por RLS.
    • No hay "RLS a nivel de página". El destino de navegación de página de Buttons no está dinámico basado en datos.


      Gracias

      Haish K

      Si resuelvo tu problema. Por favor, dale un reconocimiento a esta publicación y acéptala como solución para que otros puedan consultarla.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Gracias por tu interés, pero
      Es Power BI Server, no servicio
      Creo que no hay solución para ello