Table of Contents

Configurar la seguridad a nivel de filas (RLS)

Resumen Visual de seguridad de datos


RLS se modifica ajustando los roles o los permisos de tabla definidos en las tablas. Esta expresión de filtro de DAX se puede ver en la ventana del Editor de expresiones al seleccionar un permiso de tabla dentro de un rol específico. Esta expresión de filtro es la parte más importante de la configuración de RLS, ya que determina qué datos ve un usuario.



Configuración de RLS en Tabular Editor 3

A continuación se muestra un resumen de cambios habituales que podrías hacer en una configuración de RLS existente:


1. Eliminar un rol

Para eliminar un rol del modelo, basta con eliminar el objeto de rol con Del o haciendo clic con el botón derecho y seleccionando "Delete".

Data Security Create Role
Figura 1: Eliminación de un rol en el modelo.
Note

Todos los usuarios asignados a este rol ya no podrán ver los datos del modelo, siempre que exista al menos otro rol.


2. Agregar un nuevo rol

Para agregar un rol al modelo:

  1. Haz clic con el botón derecho en el tipo de objeto 'Roles': Esto abrirá el cuadro de diálogo para que puedas crear un nuevo rol.
  2. Selecciona 'Crear' > 'rol': Asigna un nombre al nuevo rol.
Data Security Create Role
Figura 2: Creación de un nuevo rol en el modelo.
  1. Establece la propiedad Model Permission en Read: Esto es necesario para que cualquier miembro del rol pueda acceder al Dataset.
Data Security Create Role
Figura 3: Es necesario establecer la propiedad `Model Permission`.
  1. Establece permisos: Configura los permisos de tabla de RLS y/o los permisos de objeto de OLS, como se describe a continuación.

3. Eliminar RLS

Para quitar el RLS del modelo, se deben eliminar todos los permisos de tabla. Para quitar la seguridad de datos del modelo, se deben eliminar todos los roles.

Note

Una vez eliminados todos los roles, todos los usuarios podrán ver todos los datos siempre que tengan permisos de Read sobre el Dataset.


4. Modificar un permiso de tabla

Para modificar un permiso de tabla existente para un rol específico:

  1. Expande el rol: Esto mostrará los permisos de tabla.
  2. Selecciona el permiso de tabla: Esto mostrará el DAX del permiso de filtro en el Editor de expresiones.
Data Security Create Role
Figura 4: La expresión de filtro de DAX se muestra en el Editor de expresiones al seleccionar un permiso de tabla.
  1. Ajusta la expresión de filtro / los permisos de tabla de RLS: Se recomienda probar o validar el DAX antes de usarlo:
  • Copia la expresión de filtro en una nueva ventana de Consulta DAX, bajo una instrucción EVALUATE.
  • Agrégala como la expresión de una instrucción ADDCOLUMNS que itere sobre la tabla, o sobre una parte de la tabla.
  • Ejecútala y observa los resultados.
  • Sustituye USERNAME() o USERPRINCIPALNAME() en el RLS dinámico por un valor conocido de la tabla de seguridad.
  • Vuelve a ejecutar la Consulta DAX y valida que los resultados aparezcan como se espera. Repite hasta quedar conforme.
Data Security Validation
Figura 5: Un ejemplo de cómo se puede validar RLS desde la ventana de Consulta DAX mediante la expresión FILTER dentro de un iterador sobre la tabla (o parte de ella, como el alias de usuario). En este ejemplo, se ha modificado (amarillo) la expresión de filtro RLS original en el permiso de tabla y, en su lugar, se ha añadido un User Principal Name explícito al Dataset para hacer la prueba (verde). El código de RLS se ejecuta dentro del iterador ADDCOLUMNS sobre una parte relevante de la tabla. La marca de verificación indica cualquier fila que, al ejecutarse con EVALUATE, se evalúa como TRUE. La prueba demuestra que el RLS —para este UPN— funciona como se espera, ya que Gal Aehad es el único usuario para el que se hace RETURN de TRUE cuando se indica su UPN.
EVALUATE

// Crea una tabla para probar tu RLS
ADDCOLUMNS ( 
  VALUES ( 'Regions'[Territory Directors] ),
  "@RLS-Validation",

    // Código de RLS
    VAR _CurrentUser = 
      SELECTCOLUMNS (
        FILTER ( 
          'Employees', 
          'Employees'[Employee Email]

            // Reemplaza USERPRINCIPALNAME() por el correo de un usuario para probar
            = "gal.aehad@spaceparts.co" // USERPRINCIPALNAME ()
        ),
        "@Name", 'Employees'[Employee Name]
      )
    RETURN
      'Regions'[Territory Directors] IN _CurrentUser

)

// Ordena de TRUE() a FALSE()
// Cuando sea TRUE(), los datos serán visibles
ORDER BY [@RLS-Validation] DESC

5. Agregar un nuevo permiso de tabla a un rol

Para agregar un nuevo permiso de tabla:

  1. Haz clic con el botón derecho en el rol: Selecciona 'Agregar permiso de tabla...'
Data Security Create Role
Figura 6: En Tabular Editor, los permisos de tabla para RLS son visibles bajo el rol. Los nuevos permisos de tabla se pueden crear haciendo clic con el botón derecho en un rol y seleccionando 'Agregar partición de tabla...'
  1. Selecciona la tabla y pulsa 'Aceptar': Selecciona la tabla para la que quieras crear el permiso.
  2. Escribe la expresión FILTER / permisos de tabla de RLS: Redacta el DAX de la expresión FILTER. Como antes, quieres validar esta expresión de filtro (Ver la Figura 5):
  • Copia la expresión FILTER en una nueva ventana de Consulta DAX, debajo de una instrucción EVALUATE.
  • Añádela como la expresión de una instrucción ADDCOLUMNS que itere sobre la tabla o sobre una parte de ella.
  • Ejecútala y observa los resultados.
  • Sustituye USERNAME() o USERPRINCIPALNAME() en el RLS dinámico por un valor conocido de la tabla de seguridad.
  • Vuelve a ejecutar la Consulta DAX y valida que los resultados aparezcan como se espera. Repite hasta quedar conforme.

6. Asignar o quitar usuarios de un rol

Puedes asignar y quitar usuarios o grupos de los roles desde Tabular Editor.

  1. Haz clic con el botón derecho en el rol y selecciona Editar miembros...
Data Security Create Role
Figura 7: Los usuarios pueden asignarse a roles haciendo clic con el botón derecho en un rol y seleccionando 'Editar miembros...'.
  1. Haz clic en el botón desplegable del botón 'Agregar miembro de Windows AD' y selecciona Miembro de Azure AD:
Data Security Create Role
Figura 8: Para modelos AAS/SSAS, los usuarios se pueden agregar mediante el cuadro de diálogo 'Editar miembros...'.
  1. Especifica la identidad del usuario de Azure AD (normalmente, la dirección de correo electrónico del usuario) en la propiedad Nombre de miembro.
  2. Haz clic en Aceptar.
  3. Guarda el modelo.
Important

Si tu organización usa Active Directory local con SQL Server Analysis Services, tendrás que usar la opción Miembro de Windows AD en lugar de Miembro de Azure AD.

Note

Una vez que hayas publicado un Dataset de Power BI en el servicio Power BI, también puedes administrar los miembros del rol desde la configuración de seguridad del Dataset. Como alternativa, puedes administrar los miembros del rol desde SQL Server Management Studio (esto se aplica a los modelos AAS/SSAS, además del Dataset de Power BI).