Seguridad de nivel de fila (RLS) con Power BIRow-level security (RLS) with Power BI

La seguridad de nivel de fila (RLS) con Power BI puede usarse para restringir el acceso a los datos a determinados usuarios.Row-level security (RLS) with Power BI can be used to restrict data access for given users. Los filtros restringen el acceso a los datos en el nivel de fila y se pueden definir en roles.Filters restrict data access at the row level, and you can define filters within roles. Tenga en cuenta que en el servicio Power BI, los miembros de un área de trabajo tienen acceso a conjuntos de datos del área de trabajo.Be aware that in the Power BI service, members of a workspace have access to datasets in the workspace. RLS no restringe este acceso a datos.RLS doesn't restrict this data access.

Puede configurar RLS para los modelos de datos que se han importado en Power BI con Power BI Desktop.You can configure RLS for data models imported into Power BI with Power BI Desktop. También puede configurar RLS en conjuntos de datos que utilizan DirectQuery, como SQL Server.You can also configure RLS on datasets that are using DirectQuery, such as SQL Server. Anteriormente, solo podía implementar RLS en modelos locales de Analysis Services fuera de Power BI.Previously, you were only able to implement RLS within on-premises Analysis Services models outside of Power BI. Para las conexiones activas de Analysis Services, la seguridad de nivel de fila se configura en el modelo local.For Analysis Services live connections, you configure Row-level security on the on-premises model. La opción de seguridad no se mostrará para conjuntos de datos de conexión dinámica.The security option will not show up for live connection datasets.

Definir roles y reglas en Power BI DesktopDefine roles and rules in Power BI Desktop

Puede definir roles y reglas en Power BI Desktop.You can define roles and rules within Power BI Desktop. Al publicar en Power BI, publica también definiciones de roles.When you publish to Power BI, it also publishes the role definitions.

Para definir los roles de seguridad, siga estos pasos.To define security roles, follow these steps.

  1. Importar datos en el informe de Power BI Desktop o configurar una conexión de DirectQuery.Import data into your Power BI Desktop report, or configure a DirectQuery connection.

    Nota

    No puede definir roles en Power BI Desktop para conexiones dinámicas de Analysis Services.You can't define roles within Power BI Desktop for Analysis Services live connections. Debe hacerlo en el modelo de Analysis Services.You need to do that within the Analysis Services model.

  2. Seleccione la pestaña Modelado.Select the Modeling tab.

  3. Seleccione Administrar roles.Select Manage Roles.

  4. Seleccione Crear.Select Create.

  5. Proporcione un nombre para el rol.Provide a name for the role.

  6. Seleccione la tabla a la que quiere aplicar una regla DAX.Select the table that you want to apply a DAX rule.

  7. Escriba las expresiones DAX.Enter the DAX expressions. Esta expresión debe devolver true o false.This expression should return a true or false. Por ejemplo: [Id. de entidad] = "Valor".For example: [Entity ID] = “Value”.

    Nota

    Puede usar username() en esta expresión.You can use username() within this expression. Tenga en cuenta que username() tiene el formato DOMINIO\usuario en Power BI Desktop.Be aware that username() has the format of DOMAIN\username within Power BI Desktop. En el servicio Power BI y en Power BI Report Server, está en el formato del nombre principal de usuario (UPN).Within the Power BI service and Power BI Report Server, it's in the format of the user's User Principal Name (UPN). Como alternativa, puede usar userprincipalname() , que siempre devuelve el usuario en el formato de su nombre principal de usuario, username@contoso.com.Alternatively, you can use userprincipalname(), which always returns the user in the format of their user principal name, username@contoso.com.

  8. Después de haber creado la expresión DAX, puede seleccionar la casilla encima del cuadro de expresión para validar la expresión.After you have created the DAX expression, you can select the check above the expression box to validate the expression.

    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).In this expression box, you use commas to separate DAX function arguments even if you're using a locale that normally uses semicolon separators (e.g. French or German).

  9. Seleccione Guardar.Select Save.

No puede asignar usuarios a un rol en Power BI Desktop.You can't assign users to a role within Power BI Desktop. Los asigna en el servicio Power BI.You assign them in the Power BI service. Para habilitar la seguridad dinámica en Power BI Desktop, puede usar las funciones DAX username() y userprincipalname() . Las relaciones deben estar configuradas correctamente.You can enable dynamic security within Power BI Desktop by making use of the username() or userprincipalname() DAX functions and having the proper relationships configured.

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.By default, row-level security filtering uses single-directional filters, regardless of whether the relationships are set to single direction or bi-directional. 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.You can manually enable bi-directional cross-filter with row-level security by selecting the relationship and checking the Apply security filter in both directions checkbox. Debe activar esta casilla 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.You should check this box when your've also implemented dynamic row-level security at the server level, where row-level security is based on user name or login ID.

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.For more information, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing the Tabular BI Semantic Model technical article.

Aplicar filtro de seguridad

Validar los roles en Power BI DesktopValidate the roles within Power BI Desktop

Después de haber creado los roles, pruebe sus resultados en Power BI Desktop.After you've created your roles, test the results of the roles within Power BI Desktop.

  1. Seleccione Ver como roles.Select View As Roles.

    En Ver como roles se muestran los roles que ha creado.In View as roles, you see the roles you've created.

  2. Seleccione un rol que haya creado > Aceptar para aplicar ese rol.Select a role you created > OK to apply that role. Los informes representan los datos pertinentes para ese rol.The report renders the data relevant for that role.

  3. También puede seleccionar Otro usuario y proporcionar un usuario determinado.You can also select Other user and supply a given user. 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.It's best to supply the User Principal Name (UPN) as that's what the Power BI service and Power BI Report Server use.

  4. Seleccione Aceptar y el informe se representará en función de lo que pueda ver ese usuario.Select OK and the report renders based on what that user can see.

En Power BI Desktop, Otro usuario solo muestra resultados diferentes si está usando la seguridad dinámica basada en expresiones DAX.Within Power BI Desktop, Other user only displays different results if you're using dynamic security based on your DAX expressions.

Administración de la seguridad en el modeloManage security on your model

Para administrar la seguridad en el modelo de datos, deberá hacer lo siguiente.To manage security on your data model, you will want to do the following.

  1. Seleccione los puntos suspensivos (...) correspondientes a un conjunto de datos.Select the ellipse (…) for a dataset.

  2. Seleccione Seguridad.Select Security.

    Aplicar filtro de seguridad en ambas direcciones

Esto le llevará a la página RLS para agregar miembros a un rol creado en Power BI Desktop.This will take you to the RLS page for you to add members to a role you created in Power BI Desktop. Solo los propietarios del conjunto de datos verán que la opción Seguridad está disponible.Only the owners of the dataset will see Security available. Si el conjunto de datos está en un grupo, solo los administradores del grupo verán la opción de seguridad.If the dataset is in a Group, only Administrators of the group will see the security option.

Solo puede crear o modificar roles dentro de Power BI Desktop.You can only create or modify roles within Power BI Desktop.

MiembrosWorking with members

Agregar miembrosAdd members

Puede agregar un miembro al rol si escribe la dirección de correo electrónico, o el nombre, del usuario, el grupo de seguridad o la lista de distribución que desea agregar.You can add a member to the role by typing in the email address, or name, of the user, security group or distribution list you want to add. No se pueden agregar grupos creados dentro de Power BI.You cannot add Groups created within Power BI. Puede agregar miembros externos a la organización.You can add members external to your organization.

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.You can also see how many members are part of the role by the number in parenthesis next to the role name, or next to Members.

Miembros de rol

Quitar miembrosRemove members

Puede quitar miembros seleccionando la X junto a su nombre.You can remove members by selecting the X next to their name.

Quitar miembro

Validación del rol en el servicio Power BIValidating the role within the Power BI service

Puede validar que el rol definido funciona correctamente probándolo.You can validate that the role you defined is working correctly by testing the role.

  1. Seleccione los puntos suspensivos (...) junto al rol.Select the ellipsis (...) next to the role.
  2. Seleccione Probar datos como rol.Select Test data as role

Probar como rol

Verá los informes que están disponibles para este rol.You will then see reports that are available for this role. Los paneles no se presentan en esta vista.Dashboards are not presented in this view. En la barra azul superior, verá lo que se aplica.In the blue bar above, you will see what is being applied.

Ahora se muestra como

Puede probar otros roles, o combinación de roles, seleccionando Ahora se muestra como.You can test other roles, or combination of roles, by selecting Now viewing as.

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.You can choose to view data as a specific person, or you can select a combination of available roles to validate they are working.

Para volver a la vista normal, seleccione Volver a seguridad de nivel de fila.To return to normal viewing, select Back to Row-Level Security.

Uso de la función DAX username() o userprincipalname()Using the username() or userprincipalname() DAX function

Puede aprovechar las ventajas de las funciones DAX username() o userprincipalname() dentro del conjunto de datos.You can take advantage of the DAX functions username() or userprincipalname() within your dataset. Puede usarlas dentro de expresiones en Power BI Desktop.You can use them within expressions in Power BI Desktop. Cuando publique el modelo, se utilizará dentro del servicio Power BI.When you publish your model, it will be used within the Power BI service.

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 .Within Power BI Desktop, username() will return a user in the format of DOMAIN\User and userprincipalname() will return a user in the format of user@contoso.com.

En el servicio Power BI, username() y userprincipalname() devolverán ambos el nombre principal de usuario (UPN) del usuario.Within the Power BI service, username() and userprincipalname() will both return the user's User Principal Name (UPN). Es similar a una dirección de correo electrónico.This looks similar to an email address.

Uso de RLS con áreas de trabajo de la aplicación en Power BIUsing RLS with app workspaces in Power BI

Si publica un informe de Power BI Desktop en un área de trabajo de la aplicación dentro del servicio Power BI, los roles se aplican a los miembros de solo lectura.If you publish your Power BI Desktop report to an app workspace within the Power BI service, the roles will be applied to read-only members. Debe indicar que los miembros solo pueden ver contenido de Power BI dentro de la configuración del área de trabajo de la aplicación.You will need to indicate that members can only view Power BI content within the app workspace settings.

Advertencia

Si ha configurado el área de trabajo de la aplicación para que los miembros tengan permisos de edición, los roles de RLS no se aplicarán a ellos.If you have configured the app workspace so that members have edit permissions, the RLS roles will not be applied to them. Los usuarios podrán ver todos los datos.Users will be able to see all of the data.

Configuración de grupo

LimitacionesLimitations

Esta es una lista de las limitaciones actuales para la seguridad de nivel de fila en los modelos en la nube.Following is a list of the current limitations for row-level security on cloud models.

  • Si anteriormente definió roles y reglas en el servicio Power BI, debe volver a crearlos en Power BI Desktop.If you previously defined roles and rules in the Power BI service, you must re-create them in Power BI Desktop.

  • Solo puede definir RLS en los conjuntos de datos creados con Power BI Desktop.You can define RLS only on the datasets created with 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).If you want to enable RLS for datasets created with Excel, you must convert your files into Power BI Desktop (PBIX) files first. Más informaciónLearn more

  • Solo se admiten conexiones de DirectQuery y ETL.Only ETL and DirectQuery connections are supported. Las conexiones dinámicas con Analysis Services se controlan en el modelo local.Live connections to Analysis Services are handled in the on-premises model.

  • En la actualidad no se admite Cortana con RLS.Cortana is not supported with RLS at this time.

Problemas conocidosKnown issues

Hay un problema conocido en el que se produce un mensaje de error al intentar publicar un informe publicado anteriormente desde Power BI Desktop.There is a known issue where you'll get an error message if you try to publish a previously published report from Power BI Desktop. El escenario es el siguiente.The scenario is as follows.

  1. Ana tiene un conjunto de datos publicado en el servicio Power BI y ha configurado RLS.Anna has a dataset that is published to the Power BI service and has configured RLS.

  2. Ana actualiza el informe en Power BI Desktop y vuelve a publicarlo.Anna updates the report in Power BI Desktop and republishes.

  3. Ana recibe un error.Anna receives an error.

Solución alternativa: vuelva a publicar el archivo de Power BI Desktop desde el servicio Power BI hasta que se solucione este problema.Workaround: Republish the Power BI Desktop file from the Power BI service until this issue is resolved. Para ello, seleccione Obtener datos > Archivos.You can do that by selecting Get Data > Files.

PREGUNTAS MÁS FRECUENTESFAQ

Pregunta: ¿Qué ocurre si tengo roles y reglas creados previamente para un conjunto de datos en el servicio Power BI?Question: What if I had previously created roles and rules for a dataset in the Power BI service? ¿Seguirán funcionando si no hago nada?Will they still work if I do nothing?
Respuesta: No, los objetos visuales no se representarán correctamente.Answer: No, visuals will not render properly. Tendrá que volver a crear los roles y las reglas en Power BI Desktop y, después, publicarlos en el servicio Power BI.You will have to re-create the roles and rules within Power BI Desktop and then publish to the Power BI service.

Pregunta: ¿Puedo crear estos roles para orígenes de datos de Analysis Services?Question: Can I create these roles for Analysis Services data sources?
Respuesta: Puede hacerlo si importa los datos a Power BI Desktop.Answer: You can if you imported the data into Power BI Desktop. Si usa una conexión dinámica, no podrá configurar RLS en el servicio Power BI.If you are using a live connection, you will not be able to configure RLS within the Power BI service. Esto se define en el modelo local de Analysis Services.This is defined within the Analysis Services model on-premises.

Pregunta: ¿Puedo usar RLS para limitar las columnas o medidas accesibles por mis usuarios?Question: Can I use RLS to limit the columns or measures accessible by my users?
Respuesta: No, si un usuario tiene acceso a una fila de datos determinada, puede ver todas las columnas de datos de esa fila.Answer: No, if a user has access to a particular row of data, they can see all the columns of data for that row.

Pregunta: ¿Permite RLS ocultar datos detallados pero dar acceso a datos resumidos en objetos visuales?Question: Does RLS let me hide detailed data but give access to data summarized in visuals?
Respuesta: No, aunque proteja las filas de datos individuales, los usuarios siempre pueden ver los detalles o los datos resumidos.Answer: No, you secure individual rows of data but users can always see either the details or the summarized data.

Pregunta: El origen de datos ya tiene definidos roles de seguridad (por ejemplo, roles de SQL Server o de SAP BW).Question: My data source already has security roles defined (for example SQL Server roles or SAP BW roles). ¿Cuál es la relación entre estos y RLS?What is the relationship between these and RLS?
Respuesta: La respuesta depende de si se importan datos o se usa DirectQuery.Answer: The answer depends on whether you're importing data or using 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.If you're importing data into your Power BI dataset, the security roles in your data source aren't used. En este caso, se debe definir RLS para aplicar las reglas de seguridad para los usuarios que se conectan en Power BI.In this case, you should define RLS to enforce security rules for users who connect in Power BI. Si usa DirectQuery, se usan los roles de seguridad en el origen de datos.If you're using DirectQuery, the security roles in your data source are used. 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.When a user opens a report Power BI sends a query to the underlying data source, which applies security rules to the data based on the user's credentials.

Pasos siguientesNext steps

Seguridad de nivel de fila (RLS) con Power BI DesktopRow-level security (RLS) with Power BI Desktop

¿Tiene más preguntas?More questions? Pruebe a preguntar a la comunidad de Power BITry asking the Power BI Community