Filtrar acceso a datos
Los filtros controlan el acceso de seguridad a los valores de datos del cubo de Essbase. Los filtros son la forma más granular de seguridad disponible. Los filtros designan un juego de restricciones en celdas de cubo concretas o en un rango de celdas. Los administradores o gestores asignan el filtro para regular el acceso de usuarios o grupos.
Su propio rol de seguridad determina si puede crear, asignar, editar, copiar, cambiar de nombre o suprimir filtros:
- Si tiene el rol Gestor de aplicaciones, puede gestionar cualquier filtro para cualquier usuario o grupo. Los filtros no le afectan.
- Si tiene el rol Actualización de base de datos, puede gestionar los filtros de las aplicaciones que haya creado.
- Si tiene el rol Gestor de bases de datos, puede gestionar los filtros de sus aplicaciones o cubos.
- Si tiene el rol de Acceso a base de datos (valor por defecto), tiene acceso de lectura a los valores de datos de todas las celdas, a menos que su acceso esté más restringido por filtros.
Crear un filtro mediante la interfaz web de Essbase
En la sección de personalización de la base de datos de la interfaz web de Essbase, puede crear un filtro de seguridad que restrinja el acceso del cubo a usuarios o grupos.
Puede crear varios filtros para un cubo. Si edita un filtro, las modificaciones realizadas en su definición las heredan todos los usuarios de ese filtro.
Para editar un filtro, seleccione el cubo y haga clic en la opción Filtros en el panel de la izquierda. Después, edite el filtro haciendo clic en el nombre del filtro y realizando los cambios en el editor de filtros. Para editar una fila existente, haga doble clic en esa fila.
Puede copiar, renombrar o suprimir un filtro haciendo clic en el menú Acciones situado a la derecha del nombre del filtro y seleccionando una opción.
Después de crear filtros, asigne los filtros a usuarios o grupos.
Consulte Controlling Access to Database Cells Using Security Filters.
Creación de filtros dinámicos eficaces
Puede crear filtros dinámicos basados en datos de fuentes externas para reducir el número de definiciones de filtro necesarias.
@datasourceLookup y las variables $LoginUser y $LoginGroup. Los datos de origen externo son un archivo csv o una tabla relacional. En el caso de los datos de origen relacionales, se puede cargar el archivo.csv en una tabla relacional.
Sintaxis de filtro dinámico
Utilice la sintaxis de filtro dinámico para crear filtros dinámicos que pueda asignar a varios usuarios y grupos.
Las filas del filtro pueden contener los siguientes elementos como parte de su definición, además de las expresiones de miembro.
$loginuser
Esta variable almacena el valor del usuario actual con sesión iniciada en tiempo de ejecución. Puede utilizarse en combinación con el método @datasourcelookup.
$logingroup
Esta variable almacena el valor de todos los grupos a los que pertenece el usuario conectado actualmente. Incluye grupos directos e indirectos. Si se utiliza en combinación con el método @datasourcelookup, cada grupo se busca de manera individual en el origen de datos.
@datasourcelookup
Este método recupera los registros de un origen de datos.
Sintaxis
@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)| parámetro | Descripción |
|---|---|
| dataSourceName |
Nombre del origen de datos externo definido en Essbase. Para un origen de datos a nivel de aplicación, agregue al nombre un prefijo con el nombre de la aplicación y un punto. |
| columnName |
Nombre de la columna de origen de datos para buscar un columnValue determinado. |
| columnValue |
Valor que buscar en columnName. |
| returnColumnName |
Nombre de la columna de origen de datos desde la que devolver una lista de valores. |
Note:
Los nombres de columna de origen de datos no deben utilizar palabras reservadas SQL como USER, GROUP o ROLE. El uso de palabras reservadas puede provocar errores de análisis SQL o un comportamiento de filtro inesperado.Descripción
Una llamada de @datasourcelookup equivale a la siguiente consulta de SQL:
select returnColumnName from dataSourceName where columnName=columnValue@datasourcelookup busca el origen de datos determinado y el registro en los que columnName contenga columnValue. Si especifica columnValue como $loginuser, este método buscará registros en los que el método columnName contenga el nombre del usuario actualmente conectado.
Essbase forma la fila de definición de filtro combinando los elementos de la lista en una cadena separada por comas. Si algún registro contiene caracteres especiales, espacios o solo números, aparecerá entre comillas.
Note:
El parámetro @options se puede utilizar para controlar el comportamiento de los fallos de consulta. Cuando estrictoLookup=true, los fallos de consulta se tratan como errores fatales y no se devuelve ningún resultado de filtro.Ejemplos
Indique los parámetros entre comillas.
La siguiente llamada busca un origen de datos global y devuelve una lista de nombres de almacén en los que aparece Mary como gestor de almacén.
@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")La siguiente llamada busca un origen de datos a nivel de aplicación y devuelve una lista de nombres de almacén en los que el usuario con sesión iniciada actualmente aparece como gestor de almacén.
@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")La siguiente llamada busca un origen de datos a nivel de aplicación y devuelve una lista de nombres de almacén en los que el departamento de tienda coincide con alguno de los grupos a los que pertenece el usuario conectado.
@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")Si el usuario conectado pertenece a 3 grupos, el método anterior @datasourcelookup devuelve todos los valores que coincidan para cada grupo.
En el siguiente ejemplo se utilizan funciones SQL dentro de una expresión de filtro dinámico.
@datasourceLookup("Sample.StoreManagersDS",LOWER(CAST("STOREMANAGER" AS VARCHAR(30))),LOWER("$loginuser"),"STORE")En el ejemplo siguiente se realiza una evaluación sensible a mayúsculas/minúsculas mediante funciones de mayúsculas/minúsculas explícitas.
@datasourceLookup("Sample.StoreManagersDS",UPPER("STOREMANAGER"),UPPER("$loginuser"),"STORE")En el siguiente ejemplo, se devuelven las tiendas que pertenecen al departamento de ventas o marketing.
@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","Sales","Marketing","STORE")En el siguiente ejemplo se utiliza una función de juego de miembros con @datasourceLookup.
@DESCENDANTS(@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE"))En el siguiente ejemplo, se utilizan funciones de juego de miembros anidadas con una consulta de origen de datos.
@CHILDREN(@LSIBLING(@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")))En el siguiente ejemplo se utiliza un comportamiento de consulta estricto. Si la consulta falla, no se devuelve ningún resultado de filtro.
@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE",@options(strictLookup=true))Flujo de trabajo de creación de filtros dinámicos
Utilice el siguiente flujo de trabajo general para crear filtros dinámicos.
Este flujo de trabajo de filtros dinámicos asume que ya dispone de un cubo, así como de usuarios y grupos aprovisionados.
- Identifique un origen de datos, ya sea de archivos o relacional.
- Defina la conexión y el origen de datos en Essbase, tanto globalmente como a nivel de aplicación.
- Cree filtros en el nivel del cubo. Navegue hasta el cubo y seleccione Filtros.
- Defina la fila de filtro para cada filtro, utilizando la sintaxis del filtro dinámico para emplear la variable
$loginuser, la variable$logingroupy la variable@datasourcelookupsegún sea necesario. - Asigne los filtros a usuarios o grupos.
- Si ha asignado el filtro a un grupo, asigne el grupo a la aplicación que se va a filtrar. Vaya a la aplicación y seleccione Permisos.
Ejemplo de filtro dinámico
El siguiente filtro dinámico funciona con el cubo denominado Efficient.UserFilters, disponible en la galería como plantilla de ejemplo.

Para aprender a crear y aplicar este filtro dinámico, descargue la plantilla del libro de trabajo, Efficient_Filters.xlsx, en la sección Técnico de la galería, y siga las instrucciones README en el libro de trabajo. La galería está disponible en la sección Archivos de la interfaz web de Essbase.