Protección de un almacén de lago para equipos de Almancenamiento de datos
Introducción
En este artículo, se proporciona información general sobre cómo configurar la seguridad de un almacén de lago en Fabric para su uso con los usuarios de SQL con consultas de T-SQL. Estos usuarios podrían ser analistas de negocios que consumen datos mediante SQL, creadores de informes o ingenieros de datos que crean tablas y vistas.
Características de seguridad
Microsoft Fabric usa un modelo de seguridad de varias capas con distintos controles disponibles en distintos niveles para proporcionar solo los permisos mínimos necesarios. Para más información sobre las distintas características de seguridad disponibles en Fabric, consulte Modelo de control de acceso a datos en OneLake.
En la carga de trabajo de Synapse Data Warehouse, los elementos de punto de conexión de análisis SQL y almacén también permiten definir la seguridad nativa de SQL. La seguridad de SQL usa la biblioteca completa de construcciones de seguridad de T-SQL para permitir el control de acceso pormenorizado de tablas, vistas, filas y columnas dentro de un elemento. Para más información sobre la seguridad de SQL, consulte Permisos pormenorizados de SQL.
Los permisos SQL configurados en el almacén o el punto de conexión de análisis SQL solo se aplican a las consultas que se ejecutan en el almacén o el punto de conexión de análisis SQL. Los datos subyacentes residen en OneLake, pero el acceso a los datos de OneLake se controla por separado a través de los roles de acceso a datos de OneLake. Para asegurarse de que los usuarios con permisos específicos de SQL no ven los datos a los que no tienen acceso SQL, no incluya a esos usuarios en un rol de acceso a datos de OneLake.
Protección por caso de uso
La seguridad de Microsoft Fabric está optimizada en torno a la protección de datos para casos de uso específicos. Un caso de uso es un conjunto de usuarios que necesitan acceso específico y que acceden a los datos mediante un motor determinado. Para escenarios de SQL, algunos casos de uso comunes son los siguientes:
- Escritores SQL: usuarios que necesitan crear tablas o ver o escribir datos en tablas existentes.
- Lectores SQL: usuarios que necesitan leer datos mediante consultas SQL. Podrían acceder a la conexión SQL directamente o bien mediante otro servicio como Power BI.
Después, se puede alinear cada caso de uso con los permisos necesarios en Fabric.
Acceso de escritura de SQL
Hay dos maneras de que a un usuario se le conceda acceso de escritura a un almacén o a un punto de conexión de análisis SQL:
- A través de roles de área de trabajo de Fabric, puede conceder pertenencia a tres roles de área de trabajo que concedan permisos de escritura. Cada rol se traduce automáticamente en un rol correspondiente en SQL que concede acceso de escritura equivalente.
- Conceda acceso de lectura al motor de SQL y conceda permisos de SQL personalizados para escribir en algunos o todos los datos.
Si un usuario necesita acceso de escritura a todos los almacenes o puntos de conexión de análisis SQL de un área de trabajo, asígnelo a un rol de área de trabajo. A menos que un usuario tenga que asignar otros usuarios a roles de área de trabajo, se debe usar el rol Colaborador.
Si un usuario solo necesita escribir en almacenes o puntos de conexión de análisis SQL específicos, concédale acceso directo mediante permisos de SQL.
Acceso de lectura de SQL
Hay dos maneras de que a un usuario se le conceda acceso de lectura a un almacén o a un punto de conexión de análisis SQL:
- Conceda acceso de lectura mediante el permiso ReadData concedido como parte de los roles de área de trabajo de Fabric. Los cuatro roles de área de trabajo conceden el permiso ReadData.
- Conceda acceso de lectura al motor de SQL y conceda permisos de SQL personalizados para leer en algunos o todos los datos.
Si un usuario es miembro de un rol de área de trabajo de Fabric, se le concede el permiso ReadData. El permiso ReadData asigna el usuario a un rol de SQL que concede permisos SELECT en todas las tablas del almacén o almacén de lago. Este permiso es útil si un usuario necesita ver todos o la mayoría de los datos en el almacén de lago o almacén. Los permisos DENY de SQL establecidos en un almacén o un almacén de lago determinado se siguen aplicando y limitan el acceso a las tablas. Además, la seguridad de nivel de fila y columna se puede establecer en tablas para restringir el acceso a un nivel pormenorizado.
Si un usuario solo necesita acceso a un almacén o un almacén de lago específico, la característica de uso compartido proporciona acceso solo al elemento compartido. Durante el uso compartido, los usuarios pueden optar por conceder solo permiso de lectura o Read + ReadData. Conceder el permiso de lectura permite al usuario conectarse al almacén o al punto de conexión de análisis SQL, pero no proporciona acceso a las tablas. Conceder a los usuarios los permisos ReadData les concede acceso de lectura completo a todas las tablas del almacén o punto de conexión de análisis SQL. En ambos casos, se puede configurar la seguridad de SQL adicional para conceder o denegar el acceso a tablas específicas. Esta seguridad de SQL puede incluir un control de acceso pormenorizado, como la seguridad de nivel de fila o columna.
Uso con accesos directos
Los accesos directos son una característica de OneLake que permite hacer referencia a los datos desde una ubicación sin copiarlos físicamente. Los accesos directos son una herramienta eficaz que permite que los datos de un almacén de lago se reutilicen fácilmente en otras ubicaciones sin realizar copias duplicadas de los datos.
Los almacenes de Fabric no admiten los accesos directos. Pero hay un comportamiento especial para el modo en que el punto de conexión de análisis SQL para un almacén de lago interactúa con los accesos directos.
Se accede a todos los accesos directos de un almacén de lago en modo delegado al consultar desde el punto de conexión de análisis SQL. La identidad delegada es el usuario de Fabric que posee el almacén de lago. De manera predeterminada, el propietario es el usuario que ha creado el almacén de lago y el punto de conexión de análisis SQL. El propietario se puede cambiar en casos seleccionados y el propietario actual se muestra en la columna Propietario de Fabric al ver el elemento en la lista de elementos del área de trabajo. El comportamiento delegado significa que un usuario que realiza una consulta puede leer desde tablas de acceso directo si el propietario tiene acceso a los datos subyacentes, no el usuario que ejecuta la consulta. El usuario que realiza la consulta solo necesita acceso para seleccionar en la tabla de acceso directo.
Nota:
Por ejemplo, UsuarioA es el propietario de un almacén de lago y UsuarioB ejecuta una consulta en una tabla que es un acceso directo. UsuarioB debe tener primero acceso de lectura en la tabla, ya sea mediante ReadData o permisos de SQL. Para ver los datos, la consulta comprueba si UsuarioA tiene acceso al acceso directo. Si UsuarioA tiene acceso, UsuarioB verá los resultados de la consulta. Si UsuarioA no tiene acceso, se producirá un error en la consulta.
En el caso de almacenes de lago que usan la característica de roles de acceso a datos de OneLake, el acceso a un acceso directo viene determinado por si el propietario del punto de conexión de análisis SQL tiene acceso para ver el almacén de lago de destino y leer la tabla mediante un rol de acceso a datos de OneLake.
En el caso de los almacenes de lago que aún no usan la característica de roles de acceso a datos de OneLake, el acceso al acceso directo se determina si el propietario del punto de conexión de análisis SQL tiene el permiso Read y ReadAll en la ruta de acceso de destino.