Crear una directiva de datos para la seguridad a nivel de fila

Utilice una directiva de datos para aplicar seguridad de nivel de fila a una o más tablas en una conexión virtual. Una directiva de datos filtra los datos, lo que garantiza que los usuarios vean solo los datos que se supone que deben ver. Las directivas de datos se aplican tanto a las conexiones en tiempo real como a las de extracción.

Acerca de las directivas de datos

La directiva de datos tiene tres componentes principales:

Un ejemplo de los tres componentes de una directiva de datos en el editor de conexión virtual

  1. Las tablas a las que se aplica, llamadas tablas de directivas. Estas son las tablas que se filtran.
  2. Las columnas asignadas que definen las relaciones entre las tablas (por ejemplo, entre las tablas de derechos y de hechos) y entre las columnas de la tabla y las de la directiva. Una columna de directiva es la columna que se utiliza para filtrar datos.
  3. La condición de la directiva, que es una expresión o un cálculo que se evalúa para cada fila durante la consulta. Si la condición de la directiva es TRUE, la fila se muestra en la consulta.

Cuando crea una directiva de datos, necesita una columna que pueda usar para filtrar los datos. Esta columna se denomina columna de directiva. Los datos se filtran por la condición de la directiva, generalmente usando una función de usuario, como USERNAME() o FULLNAME().

Si su tabla de directivas incluye una columna por la que puede filtrar, utilice esa columna como su columna de directiva.

Cuando una tabla de directivas no incluye dicha columna, use una tabla de derechos con una columna que pueda usar para filtrar los datos. Una tabla de derechos es una tabla que incluye una columna de directiva que puede usar para filtrar tablas de directivas y otra columna que puede relacionar (mapear) con una columna en una tabla de directivas (como se muestra en la imagen de ejemplo de directiva de datos anterior).

Filtrar con una columna de directiva de una tabla de directivas

La forma más común de filtrar datos es usar una columna en la tabla que tenga los datos que desea filtrar. Utilice esa columna como columna de directiva y luego asigne las columnas de la tabla correspondiente a la columna de directiva.

Para usar una columna de directiva para filtrar los datos, primero añada tablas a la directiva desde el panel izquierdo. Siga uno de estos procedimientos para añadir un tabla:

  • Haga doble clic en el nombre de la tabla.
  • Haga clic en la flecha desplegable junto al nombre de la tabla y seleccione Administrar la tabla con la directiva.
  • También puede arrastrar la tabla hacia la derecha y soltarla en Agregar como tabla de directiva.

Después de agregar una tabla a una directiva, un icono de escudo Icono de directiva datos aparece a la derecha del nombre de la tabla en el panel izquierdo, lo que indica que es una tabla de directivas.

A continuación, asigne las columnas para crear una relación entre el nombre de la columna en la tabla y el nombre de la columna de la directiva. Utilice el nombre de la columna de directiva en la condición de la directiva de datos para controlar el acceso a los datos a nivel de fila para los usuarios:

  1. Haga clic en + Agregar columna a la asignación para agregar una o más columnas que se utilizarán para filtrar datos.
  2. Asigne un nombre a la columna de la directiva. Utilizará este nombre en la condición de la directiva.
  3. Para cada tabla a la que se aplica la directiva, use el menú desplegable para seleccionar la columna de la tabla que se asigna a la columna de la directiva.
  4. Repita este proceso para tantas columnas de directiva como desee utilizar en la condición de la directiva.

Sugerencia: En lugar de usar el botón + Agregar columna a la asignación, puede comenzar a escribir el cálculo en el área de condición de la directiva y usar la función de autocompletar para elegir el nombre de la columna, que luego completará la información de la columna de la directiva en el paso 1.

Un ejemplo que usa una columna de directiva de una tabla de directivas

Diagrama de una directiva de datos que utiliza una columna de directiva de una tabla de directivas para filtrar datos

  1. La tabla Sales tiene una columna [Salesperson] y la tabla Region tiene una columna [SalesRep]. Los datos de Salesperson y SalesRep coinciden con el nombre completo de los usuarios de Tableau en su sitio.
  2. Desea filtrar los datos de Sales y Region por Salesperson, por lo que debe nombrar la columna de directiva "Salesperson" y luego asignar la columna Salesperson de Sales y la columna SalesRep de Region a la columna de directiva Salesperson.
  3. Luego, escriba la condición de la directiva para filtrar ambas tablas. Utilice la columna de directiva [Salesperson] y la función de usuario FULLNAME() para que cada usuario pueda ver solo sus propios datos.

Filtrar con una columna de directiva de una tabla de derechos

Las tablas de derechos se utilizan cuando su tabla de directivas no contiene una columna por la que pueda filtrar. Puede usar la tabla de derechos para asignar una columna en la tabla de datos a una columna en la tablas de derechos. Tenga en cuenta lo siguiente:

  • Asegúrese de incluir la tabla de derechos como una tabla en la conexión virtual. Puede usar una tabla de cualquier conexión o base de datos como una tabla central de derechos que protege las tablas en muchas otras bases de datos. En algunos casos, una tabla de derechos que se encuentra en la misma base de datos que las tablas que está protegiendo puede ser un riesgo potencial para la seguridad debido a la posibilidad de exponer los datos de los empleados. Y tener una tabla de derechos en una base de datos diferente puede facilitar el control de permisos, por ejemplo, para otorgar acceso a alguien a una base de datos.
  • Si no desea que los usuarios de la conexión virtual vean la tabla de derechos, puede alternar la configuración en la columna Visibilidad en la pestaña Tablas para ocultarla. Una vez oculta, la tabla de derechos aún está disponible para el filtrado de directivas, pero no se puede usar en fuentes de datos de libros de trabajo o visualizaciones.

Nota: La tabla de derechos no admite la conexión directa a una salida de flujo (archivo .hyper). La salida del flujo debe escribir directamente en la base de datos.

Para usar una tabla de derechos para filtrar sus datos:

  1. Agregue las tablas a las que desea que se aplique la directiva de datos. Aplique una de las siguientes opciones:
    • Haga doble clic en el nombre de la tabla.
    • Haga clic en la flecha desplegable junto al nombre de la tabla y seleccione Administrar la tabla con la directiva.
    • También puede arrastrar la tabla hacia la derecha y soltarla en Agregar como tabla de directiva.
  2. Después de agregar una tabla a una directiva, un icono de escudo Icono de directiva datos aparece a la derecha del nombre de la tabla en el panel izquierdo, lo que indica que es una tabla de directivas.
  3. Seleccione la tabla de derechos y, luego:
    • Haga clic en la flecha desplegable y seleccione Usar como tabla de derechos.
    • También puede arrastrar la tabla hacia la derecha y soltarla en Agregar como tabla de derechos.
  4. Para cada tabla a la que se aplica la directiva, haga clic en el menú desplegable y seleccione la columna para asignar la tabla de directivas a la tabla de derechos.

Un ejemplo que usa una columna de directiva de una tabla de derechos

Diagrama de una directiva de datos que utiliza una columna de directiva de una tabla de derechos para filtrar datos

  1. Los datos que desea filtrar tienen una columna EMP_ID, pero no una columna de nombre de empleado. Sin embargo, tiene una segunda tabla que incluye columnas para EMP_ID y FULL NAME del empleado. Y los valores de la columna FULL NAME del empleado coinciden con el nombre completo de los usuarios de Tableau en su sitio.
  2. Puede agregar la tabla Employees a la directiva como una tabla de derechos y luego asignar el nombre de la columna de la tabla de directivas EMP_ID al nombre de la columna de derechos EMP_ID para cada tabla.
  3. Luego use la función FULLNAME() en la condición de la directiva para hacer coincidir el nombre completo del usuario de Tableau Server con la columna [FULL NAME] de la tabla de directivas (que es la columna de la directiva) para que cada usuario pueda ver solo sus propios datos.

Escribir una condición de la directiva

El último paso para crear una directiva de datos es escribir una condición de la directiva, que es un cálculo o expresión que se utiliza para definir el acceso a nivel de fila. Las condiciones de la directiva se utilizan a menudo para limitar el acceso a usuarios o grupos a través de funciones de usuario.

Las directivas:

  • Se requiere en una directiva de datos.
  • Deben evaluarse con los valores True o False.
  • Muestran filas cuando se cumplen todas las condiciones de la directiva.

Cuando cierra una pestaña de directiva, no se descarta el trabajo.

Ejemplos de condiciones de la directiva

Muestra solo las filas donde el valor de la columna Region es North:

[Region] = "North"

Permite que un usuario que haya iniciado sesión vea las filas en las que el nombre del usuario coincide con el valor de EmployeeName:

FULLNAME() = [EmployeeName]

Permite a los miembros del grupo Managers ver todas las filas, mientras que los usuarios solo pueden ver las filas en las que su nombre de usuario coincide con el valor de la columna employee_name:

ISMEMBEROF('Managers') OR USERNAME() = [employee_name]

Funciones de Tableau admitidas en condiciones de la directiva

Las condiciones de la directiva admiten un subconjunto de funciones de Tableau:

  • Lógico (excepto relacionado con valores NULL)
  • Cadena
  • Usuario
  • Fecha
  • Número: MIN, MID, MAX

Para ver qué funciones específicas son compatibles, en el editor de conexión virtual, en la pestaña Directivas de datos, consulte el panel Referencias a la derecha.

Nota: Si una conexión virtual tiene una directiva de datos que contiene Funciones de usuario(El enlace se abre en una ventana nueva) (por ejemplo, USERNAME()) y se conecta a ella desde un libro de trabajo o una fuente de datos y crea una extracción allí, la extracción contendrá solo las filas que coincidan con la directiva de datos de conexión virtual en el momento en que se crea la extracción. Para aprovechar una conexión virtual con funciones de usuario en la directiva de datos, utilice una conexión en tiempo real desde el libro de trabajo o la fuente de datos a la conexión virtual en lugar de una extracción.

¿Quién puede hacer esto?

Para crear una directiva de datos, debe

  • tener credenciales para la base de datos a la que se conecta la conexión virtual, y
  • ser administrador del sitio o del servidor, o tener una licencia Creator.

Pasos siguientes

Después de crear una directiva de datos, el siguiente paso es verificar que funcione como espera. Consulte Probar la seguridad a nivel de fila con Previsualizar como usuario. O, si lo tiene todo listo para compartir la conexión virtual y sus directivas de datos con otros, consulte Publicar una conexión virtual y configurar permisos.

Recursos

Para obtener información detallada sobre los cálculos, consulte Entender los cálculos en Tableau(El enlace se abre en una ventana nueva) en la ayuda de creación web y de Tableau Desktop.

Para obtener más información sobre las funciones de usuario, consulte Funciones de usuario(El enlace se abre en una ventana nueva) en la ayuda de creación web y de Tableau Desktop.

Para obtener información sobre otras opciones de seguridad a nivel de fila en Tableau, consulte Descripción general de las opciones de seguridad a nivel de fila en Tableau(El enlace se abre en una ventana nueva) en la ayuda de Tableau Server.

¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!