Configurar la seguridad a nivel de filas (RLS)

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.
- Acerca de la seguridad de datos y RLS/OLS: Una descripción general funcional de RLS y OLS.
- Configurar o modificar una configuración de RLS (este artículo): Cómo configurar RLS en un Dataset.
- Configurar o modificar una configuración de OLS: Cómo configurar OLS en un Dataset.
- Pruebas de RLS/OLS con suplantación: Cómo validar fácilmente la seguridad de datos con Tabular Editor.
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".

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:
- 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.
- Selecciona 'Crear' > 'rol': Asigna un nombre al nuevo rol.

- Establece la propiedad
Model PermissionenRead: Esto es necesario para que cualquier miembro del rol pueda acceder al Dataset.

- 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:
- Expande el rol: Esto mostrará los permisos de tabla.
- Selecciona el permiso de tabla: Esto mostrará el DAX del permiso de filtro en el Editor de expresiones.

- 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
ADDCOLUMNSque itere sobre la tabla, o sobre una parte de la tabla. - Ejecútala y observa los resultados.
- Sustituye
USERNAME()oUSERPRINCIPALNAME()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.

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:
- Haz clic con el botón derecho en el rol: Selecciona 'Agregar permiso de tabla...'

- Selecciona la tabla y pulsa 'Aceptar': Selecciona la tabla para la que quieras crear el permiso.
- 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
ADDCOLUMNSque itere sobre la tabla o sobre una parte de ella. - Ejecútala y observa los resultados.
- Sustituye
USERNAME()oUSERPRINCIPALNAME()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.
- Haz clic con el botón derecho en el rol y selecciona Editar miembros...

- Haz clic en el botón desplegable del botón 'Agregar miembro de Windows AD' y selecciona Miembro de Azure AD:

- Especifica la identidad del usuario de Azure AD (normalmente, la dirección de correo electrónico del usuario) en la propiedad Nombre de miembro.
- Haz clic en Aceptar.
- 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).