Seguridad por Hojas con Section Access

Es muy común que además de filtrar registros de datos con Section Access también se te solicite filtrar las hojas y los objetos a los que cada usuario tiene acceso. Sin embargo, y siendo honesto, yo no estoy a favor de filtrar objetos individuales debido a que ello implica mucho mantenimiento y una tabla de Section Access muy compleja (si se utiliza tal método). Así que normalmente describo el escenario completo, sobre todo la parte del futuro mantenimiento, a la gente de TI y los usuarios clave y ello los convence (hasta ahora) de que la mejor opción es el filtrado de hojas/pestañas y no de objetos. Lo cual en mi opinión es la mejor alternativa debido a que es más común ocultar un bloque completo de información o análisis que un solo indicador.

Existen métodos alternativos a la utilización de Section Access para cubrir este requerimiento. Por ejemplo, se puede utilizar la función MATCH(), la cual no describiré en este post pero puedo realizar un ejemplo si lo desean. Sin embargo, la desventaja de utilizar estos métodos es que todas las condiciones se deben mantener manualmente y desde la aplicación QlikView (.qvw), lo cual los hace altamente dependientes del desarrollador y de difícil mantenimiento, sobre todo si se cuenta con decenas o cientos de usuarios.

Por otro lado, utilizar Section Access otorga dos grandes ventajas:

  • Concentrar todos los aspectos de seguridad de una aplicación en un mismo mecanismo, lo cual facilita un poco la revisión de problemas.
  • Habilitar la posibilidad de administrar los privilegios de manera externa a la aplicación QlikView. Por ejemplo, un usuario clave podría realizar el mantenimiento de los perfiles desde un archivo de Excel.

Por supuesto, utilizar Section Access también tiene desventajas:

  • Se debe ser cuidadoso a la hora de definir los perfiles de acceso o se puede perder todo el trabajo hecho en una aplicación si colocamos credenciales incorrectas o simplemente las olvidamos.
  • Se debe recargar la aplicación y cerrar por completo la instancia de QlikView para poder revisar si los perfiles se aplican correctamente, además de que se debe iniciar sesión con el usuario correspondiente de Windows para poder revisar cada perfil.

No obstante estas desventajas, yo utilizo Section Access siempre que el número de usuarios con acceso a una aplicación supera la decena o cuando simplemente ya estaba utilizándolo para filtrar registros en la misma aplicación.

A continuación les dejo un video de ejemplo, así como el QVW, que describe rápidamente cómo implementar este mecanismo de seguridad por hojas. En el QVW se utilizan cargas INLINE para permitir que cualquiera que lo descargue pueda recargar la aplicación y realizar pruebas, sin embargo se debe notar que los registros que se carguen en Section Access pueden provenir de cualquier fuente, ya sean xls, qvds, o tablas de bases de datos.

Sin más preámbulo, estás son las instrucciones para poder probar el ejemplo:

  1. Descargar el archivo NTNAME Sheets Security.qvw
  2. Ir al script y en la pestaña Section Access descomentar el código deshabilitado.
  3. En la misma pestaña, cambiar los valores de los campos NTNAME y USER para que hagan referencia a los usuarios locales o de dominio de su ambiente o máquina.
  4. Guardar y salir del script. Ir al menú Configuraciones/Propiedades del Documento/Al Abrir y habilitar la opción “Reduccion Inicial de Datos basada en la Sección de Acceso”. No habiliten la opción “Exclusión Estricta”.
  5. Recarguen la aplicación y guarden.

Nota. Si cuentan con un ambiente QliKView que utilice Publisher tendrán que realizar lo siguiente antes de poder ejecutar la recarga y distribución:

  • Deberán añadir la cuenta del usuario que ejecuta los servicios de QlikView como un usuario ADMIN en la tabla de Section Access.
  • Añadir todos los usuarios que se carguen en Section Access a la tarea de Distribución.

Si solo utilizan la versión de Escritorio de QlikView, guarden y cierren todas las instancias de QlikView. Con todas las instancias cerradas, abran la aplicación nuevamente para ver revisar si los filtros se aplicaron correctamente.

Nota. Para revisar todos los perfiles será necesario cerrar la sesión de Windows y loguearse en la sesión de cada usuario. Les recomiendo copiar la aplicación en un usb para poder abrir la aplicación desde cada sesión.

Dependiendo del usuario con el que se hayan logueado en Windows deberían ver los siguientes resultados:

  • Si se loguearon como el usuario admin (primer registro en la tabla de Section Access), deberían poder ver ambas hojas (A y B) y todos los países y ciudades.
  • Si utilizaron el primer usuario (Segundo registro), únicamente deberán ver la hoja A pero si deben visualizar todos los países y ciudades.
  • Utilizando el último usuario (tercer registro), sólo deben ver la hoja B y las ciudades de MEXICO y USA.

Espero que este ejemplo les sea útil y no duden en preguntar en caso de que posean alguna duda al respecto.

Archivo QlikView:

https://drive.google.com/file/d/0B59FA6AU9Ci6VkVOTUVCMmRMRms/edit?usp=sharing

Advertisements
This entry was posted in Tutorial and tagged , , , . Bookmark the permalink.

One Response to Seguridad por Hojas con Section Access

  1. Pingback: Seguridad por Hojas con Section Access | Evolcon Evolution Consulting

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s