Restricción del acceso a los datos de modelo de Power BI

Completado

Como modelador de datos, puede considerar la posibilidad de restringir el acceso de los usuarios a objetos de modelo de Power BI. La seguridad de nivel de objeto (OLS) puede restringir el acceso a tablas y columnas específicas, y a sus metadatos. Normalmente, OLS se aplica para proteger objetos que almacenan datos confidenciales, como los datos personales de los empleados.

Cuando Power BI aplica OLS, no solo restringe el acceso a tablas y columnas, sino que también puede proteger los metadatos. Al proteger los metadatos, no es posible recuperar información sobre las tablas y columnas protegidas mediante vistas de administración dinámica (DMV).

Importante

Los modelos tabulares pueden ocultar tablas y columnas (y otros objetos) mediante una perspectiva. Una perspectiva define subconjuntos visibles de objetos de modelo para ayudar a proporcionar un enfoque específico para los autores de informes. Las perspectivas están diseñadas para reducir la complejidad de un modelo, lo que ayuda a los autores de informes a encontrar recursos de interés. Sin embargo, las perspectivas no son una característica de seguridad porque no protegen objetos. Un usuario todavía puede consultar una tabla o columna incluso si no está visible para él.

Pongamos un ejemplo sobre Adventure Works. Esta organización tiene una tabla de dimensiones de almacenamiento de datos denominada DimEmployee. La tabla incluye columnas que almacenan el nombre del empleado, el teléfono, la dirección de correo electrónico y el salario. Aunque los consumidores de informes generales pueden ver los detalles de nombre y contacto de los empleados, no deben poder ver los valores de salario. El personal superior de Recursos Humanos es el único que puede ver los valores del salario. Por lo tanto, el modelador de datos usó OLS para conceder acceso a la columna de salario solo al personal específico de Recursos Humanos.

Captura de pantalla que muestra una vista de diagrama de modelo de la tabla Employee, que incluye la columna Salario restringido.

OLS es una característica heredada de Azure Analysis Services (AAS) y SQL Server Analysis Services (SSAS). La característica está disponible en Power BI Premium para proporcionar compatibilidad con versiones anteriores para los modelos migrados a Power BI. Por este motivo, no es posible configurar completamente OLS en Power BI Desktop.

Configuración de OLS

Para configurar OLS, empiece por crear roles. Puede crear roles en Power BI Desktop de la misma manera que lo hace al configurar RLS. A continuación, debe agregar reglas OLS a los roles. Esta funcionalidad no es compatible con Power BI Desktop, por lo que deberá adoptar un enfoque diferente.

Las reglas OLS se agregan a un modelo de Power BI Desktop mediante un punto de conexión de XML for Analysis (XMLA). Los puntos de conexión de XMLA están disponibles con Power BI Premium y proporcionan acceso al motor de Analysis Services en el servicio Power BI. El punto de conexión de lectura y escritura admite la administración de conjuntos de datos, la administración del ciclo de vida de las aplicaciones, el modelado de datos avanzado, etc. Puede usar API habilitadas para puntos de conexión de XMLA para scripting, como el lenguaje de scripting del modelo tabular (TMSL), o el módulo SqlServer de PowerShell. También puede usar una herramienta de cliente, como SSMS. También hay opciones de herramientas de terceros, como Tabular Editor, que es una herramienta de código abierto para crear, mantener y administrar modelos.

De forma predeterminada, no se restringen todas las tablas y columnas del modelo. Puede establecerlos en Ninguno o Lectura. Cuando se establece en Ninguno, los usuarios asociados al rol no pueden acceder al objeto. Cuando se establece en Lectura, los usuarios asociados al rol pueden acceder al objeto. Al restringir columnas específicas, asegúrese de que la tabla no está establecida en Ninguno.

Una vez que haya agregado las reglas OLS, puede publicar el modelo en el servicio Power BI. Use el mismo proceso para que RLS asigne cuentas y grupos de seguridad a los roles.

Consideraciones

En un informe de Power BI, cuando un usuario no tiene permiso para acceder a una tabla o columna, recibirá un mensaje de error. El mensaje le informará de que el objeto no existe.

Captura de pantalla que muestra un mensaje de error de Power BI Desktop cuando un objeto visual de informe intenta consultar una columna restringida.

Considere detenidamente si OLS es la solución adecuada para el proyecto. Cuando un usuario abre un informe de Power BI que consulta un objeto restringido (para él), el mensaje de error podría resultar confuso y provocará una experiencia negativa. Les parecerá que el informe ha dejado de funcionar. Un mejor enfoque podría ser crear un conjunto independiente de modelos o informes para los distintos requisitos del consumidor del informe.

Restricciones

Hay que tener en cuenta algunas restricciones al implementar OLS.

No puede mezclar RLS y OLS en el mismo rol. Si necesita aplicar RLS y OLS en el mismo modelo, cree roles independientes dedicados a cada tipo. Además, no se puede establecer la seguridad de nivel de tabla si interrumpe una cadena de relaciones. Por ejemplo, si hay relaciones entre las tablas A y B, y B y C, no se puede proteger la tabla B. Si la tabla B está protegida, una consulta de la tabla A no puede transitar las relaciones entre la tabla A y B, y B y C. En este caso, podría configurar una relación independiente entre las tablas A y C.

Diagrama muestra el ejemplo de relación descrito en el párrafo anterior.

Sin embargo, las relaciones de modelo que hacen referencia a una columna protegida funcionarán, siempre que la tabla de la columna no esté protegida.

Por último, aunque no es posible proteger las medidas, una medida que hace referencia a objetos protegidos se restringe automáticamente.

Para más información, consulte Seguridad de nivel de objeto.