Seguridad a nivel de fila en la base de datos

Si su organización ya ha instaurado seguridad a nivel de línea (RLS) en una base de datos, puede utilizar una de las siguientes técnicas para aprovecharla. Para aprovechar los modelos de seguridad de la base de datos, se requieren conexiones en tiempo real. Además, es probable que estas técnicas no estén disponibles en Tableau Cloud. El nombre de usuario de Tableau para Tableau Cloud es una dirección de correo electrónico única que no suele ser la identidad del usuario en el lado de la base de datos.

No es necesariamente más fácil ni mejor implementar un modelo de RLS incorporado que crearlo según las características de Tableau. Estas técnicas generalmente son útiles cuando una organización ya ha invertido en estas tecnologías y quiere rentabilizar esa inversión.

Nota: Para obtener información sobre las alternativas que puede utilizar para implementar la seguridad de nivel de fila en Tableau, consulte una Descripción general de las opciones de seguridad a nivel de fila en Tableau.

Suplantación (Microsoft SQL Server)

Microsoft SQL Server (y algunos sistemas relacionados) pueden configurarse para que los usuarios de la base de datos solo tengan acceso a vistas con filtros de RLS integrados, ya sea utilizando tablas de unión de seguridad o vistas creadas por el DBA. Tableau puede aprovecharse de esto usando un concepto llamado "suplantación".

Cuando se publica una fuente de datos de Tableau que contiene una conexión de MS SQL Server a Tableau Server, hay dos opciones de autenticación disponibles para aprovechar la suplantación. El menú que vea dependerá de si ha iniciado sesión en SQL Server utilizando una autenticación de red o introduciendo credenciales de nombre de usuario/contraseña.

Para habilitar el filtrado RLS para cualquier usuario que pueda acceder a la fuente de datos publicada en Tableau Server, la cuenta de ejecución de AD o las credenciales de SQL Server incrustadas deben tener permiso para EJECUTAR COMO para todos los usuarios de Tableau en la base de datos que accederán al dashboard o a la fuente de datos. Todos los usuarios de Tableau deben incluirse en el servidor de la base de datos como usuarios, con derechos SELECT para las Vistas a las que intenta conectarse (y a las que se aplica RLS). Consulte Requisitos de suplantación para obtener una lista completa de requisitos.

Kerberos y delegación limitada

La delegación limitada dentro del Tableau Server que utiliza Kerberos funciona de forma similar a la suplantación, ya que permite a Tableau Server utilizar las credenciales de Kerberos de la vista de un libro de trabajo o la vista para ejecutar una consulta en nombre del observador, de modo que si la RLS está configurada en la base de datos, el observador del libro de trabajo solo verá sus datos.

Para ver la lista completa de bases de datos en las que se admite la delegación de Kerberos, consulte Habilitar la delegación de Kerberos. Se necesita Active Directory: el equipo en el que está instalado Tableau Server debe unirse al dominio de Active Directory. El método de autenticación(El enlace se abre en una ventana nueva) especificado al publicar la fuente de datos debe ser las credenciales del observador.

Tenga en cuenta que Kerberos se puede usar con RLS al utilizar Microsoft Analysis Services.

Cubos OLAP

Las conexiones de cubos OLAP en Tableau no tienen el equivalente a un filtro de fuente de datos, que es necesario para el método RLS basado en tablas de derechos en Tableau, o el acceso a la función USERNAME(). Por estas razones, Kerberos y la delegación restringida es un enfoque recomendado para usar RLS con bases de datos OLAP, lo que permite a Tableau aprovechar el filtrado de usuarios que ya se ha implementado en el lado del servidor OLAP.

Si los usuarios que ven el dashboard no formarán parte del dominio, se puede usar el enfoque manual para crear filtros de usuario. Sin embargo, debido a que el conjunto de filtros de usuario generado no puede añadirse como filtro de origen de datos y, en su lugar, existirá en la estantería de filtros, es importante que la función de edición web y descarga de libros de trabajo no esté permitida para las vistas publicadas que utilicen este método.

Delegación SAML y SAP HANA

Si Tableau Server está configurado para utilizar Configurar SSO de SAP HANA para proporcionar una experiencia de inicio de sesión única, las credenciales del observador se utilizan para ejecutar la consulta como ese usuario, que operará dentro de la seguridad que se aplique a nivel de usuario. El método de autenticación(El enlace se abre en una ventana nueva) especificado al publicar la fuente de datos debe ser el de las credenciales del observador.

SQL inicial para forzar una sesión específica de usuario (Oracle VPD)

SQL inicial le permite especificar un comando SQL que se ejecuta cuando se realiza la conexión a la base de datos con el fin de configurar tablas temporales para utilizar durante la sesión o para configurar un entorno de datos personalizado.

En el caso de Oracle VPD, puede configurar una sesión específica para un usuario ejecutando un procedimiento o función almacenada en particular para establecer el contexto de la conexión de la base de datos para que coincida con el nombre de usuario del usuario de Tableau:

begin
DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]);
end;

Los mismos requisitos de alto nivel son válidos para el uso de RLS que para la suplantación. El DBA debe configurar VPD y todos los usuarios asociados para que se incluyan en la base de datos.

En MS SQL Server, puede forzar EXECUTE como comando (sin embargo, esto es similar a lo que hace Tableau con la suplantación):

EXECUTE AS USER = [TableauServerUser] WITH NO REVERT;

Nota: Si la fuente de datos está insertada y un usuario tiene permisos para editar en la web o descargar el libro de trabajo, entonces la RLS no existe ya que la aplicación inicial de SQL puede eliminarse fácilmente. La fuente de datos debe publicarse por separado, en lugar de insertada en el libro de trabajo.

Matriz de comparación de los métodos de seguridad a nivel de fila (RLS)

MétodoÚtil cuandoProsContras
Tabla de derechos (Recomendado)
  • Ya hay un concepto de derechos en la base de datos
  • La organización va a instaurar la Seguridad de nivel de fila por primera vez
  • Fácil de probar, actualizar, mantener y escalar
  • Funciona tanto para conexiones en vivo como para extracciones en la versión 2018.3+
  • Requiere crear y actualizar la tabla de derechos
  • Podría requerir la selección y creación de claves apropiadas para optimizar el rendimiento
CONTAINS() con extracciones
  • Implementación de RLS en extracciones anteriores a la versión 2018.3
  • Le permite aprovechar las ventajas de las eficiencias de extracción
  • Requiere el mapeo de todos los usuarios a una sola columna
  • Es difícil volver a cambiar a las conexiones en tiempo real debido al cálculo de cadenas
Suplantación
  • Cada usuario que acceda a los datos existirá como usuario en su SQL Server (normalmente, mediante implementaciones internas)
  • La seguridad se gestiona y conserva en un mismo lugar: la base de datos
  • Requiere que cada persona que acceda a la vista sea un usuario dentro de su SQL Server
  • Solo funciona para Microsoft SQL Server
Kerberos
  • Todas las bases de datos necesarias se configuran para la delegación de Kerberos y la RLS se configura en la base de datos (normalmente, mediante implementaciones internas)
  • El nombre del espectador aparece en los registros de acceso de la base de datos
  • La seguridad se gestiona y conserva en la base de datos
  • Es necesario que Tableau pueda usar LDAP - Active Directory
  • Tableau Server debe estar asociado al dominio de AD
  • Cada usuario debe encontrarse dentro de su dominio AD
SQL inicial
  • La base de datos admite el SQL inicial y la RLS se configura en el lado de la base de datos
  • Permite el paso de los parámetros de Tableau en el momento de la carga
  • Conexión dedicada que no se puede compartir con otros usuarios
  • Los usuarios deben estar incluidos en la base de datos para ejecutar la consulta como usuario
  • No todas las bases de datos admiten SQL inicial.
  • Posibles implicaciones de rendimiento debido al uso compartido de caché restringido
¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!