Me gustaría ocultar las tablas de base de datos de Azure de Obtener datos, permitiendo el acceso solo a las vistas seleccionadas

Un usuario Pregunto ✅

tommy_g

Tenemos una base de datos Azure SQL con 60 tablas y 30 vistas que queremos OCULTAR de los usuarios cuando se conectan.

Queremos que solo puedan seleccionar datos preparados y presentados como vistas, en su mayoría desnormalizados y configurados para un análisis óptimo.

En mi instancia de desarrollo de SQL Server 2016, creé un rol para nuestros usuarios que agregó un DENY explícito en las selecciones de tabla y vista.

¡Estupendo! Ya no son visibles en PBI Desktop, dejando solo las vistas previstas.

Sin embargo, cuando intentamos la misma acción en la base de datos de producción, que es Azure SQL DB v12, se enumeran las tablas y vistas restringidas. Al seleccionar esas tablas y vistas, recibimos el mensaje de error «Permiso denegado», lo cual es cierto, pero no es el tipo de respuesta que nos gustaría presentar a nuestros usuarios.

No estoy seguro de si se trata de un problema de Azure o Power BI, pero seguramente no es exclusivo de nuestra aplicación.

Estado final deseado: presente al usuario una lista de vistas limpia, filtrada (seleccionada) y elimine todas las tablas subyacentes.

SSAS no está en juego, esta aplicación se parece más a una bóveda de datos.

DataSource.Error: Microsoft SQL: The SELECT permission was denied on the object 'Analysis', database 'bear_db', schema 'dbo'.
Details:
    DataSourceKind=SQL
    DataSourcePath=xxxx.database.windows.net;bear_db
    Message=The SELECT permission was denied on the object 'Analysis', database 'xxxx', schema 'dbo'.
    Number=229
    Class=14

ankitpatira

@tommy_g No estoy seguro de si hay una manera en Azure SQL DB para hacer exactamente lo que hizo en SQL Server 2016, pero desde la perspectiva de Power BI puedo pensar en una forma como la siguiente para lograr lo que desea.

En primer lugar, no daría acceso a Azure SQL DB a ninguno de los usuarios. Luego, me conectaría a Azure SQL DB en el servicio power bi y solo me conectaría a las Vistas creadas y luego lo publicaría como un paquete de contenido organizacional para toda la organización. Lo que significa que cualquier usuario de power bi ahora solo haría uso de ese paquete de contenido organizacional para crear informes/paneles de control y no necesitan conectarse a la fuente de datos que es Azure SQL DB. Como propietario del paquete de contenido, sería mi responsabilidad mantener actualizado ese conjunto de datos, pero dado que es Azure SQL DB, Power BI lo manejaría automáticamente.

tommy_g

En respuesta a ankitpatira

Ankit, gracias por una posible solución. El problema es que es más complicado que el acceso directo, y el cliente no aceptará una solución que no funcione con datos en vivo. Si se tratara de una situación DW tradicional, se esperaría el retraso de tiempo.

Luego de más investigaciones, verifiqué que la técnica de denegar los permisos Select en las tablas restringidas realmente funciona en SQL Server 2016.

El comportamiento es el mismo en Power BI Desktop, Access 2016 y Excel 2016: las tablas y vistas restringidas nunca se muestran al usuario final.

Espero que haya otro truco que pueda hacer en el lado de Azure DB que me permita filtrar tablas y vistas en PBI de manera efectiva.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *