Privilegios y universos#
El metadata decide qué ve y qué cambia cada usuario: qué dimensiones y métricas ve (seguridad por columnas), qué registros puede editar en los formularios y qué filas de cada tabla le llegan (universos, la seguridad por filas). Todo se apoya en privilegios, que se dan a los usuarios con los roles. Esta página explica cómo se ponen en el metadata; los roles y la seguridad en general están en Seguridad.
Antes de empezar#
- Necesita Administración del Metadata para crear privilegios y ponerlos en el metadata. Darlos a los usuarios (asignarlos a roles) se hace en Administración › Usuarios y roles, con Administración de Usuarios.
- Los privilegios son de toda la instalación, no de una conexión. Los universos son de cada conexión.
Las tres clases de protección#
| Protección | Dónde se pone | Qué hace |
|---|---|---|
| Privilegio de acceso | En cada dimensión y cada métrica. | Quien no lo tiene no ve el dato: no se le ofrece, no se consulta y los documentos que lo usan se le enseñan sin él, con un aviso. |
| Privilegios de edición | En cada tabla de hechos (insertar, modificar y eliminar registros), en cada dimensión (cambiar su valor) y en cada tabla auxiliar (dar de alta, cambiar y eliminar valores). | Quién puede cambiar datos de la base de datos desde los formularios. |
| Universo | En una tabla de hechos, para un privilegio. | Quien tiene ese privilegio solo ve las filas de la tabla que cumplen una condición, y las de sus tablas de detalle. |
El privilegio Sin nivel definido es el de por defecto de todo lo que no está protegido: lo tienen todos los usuarios.
La pestaña Seguridad#
La pestaña Seguridad del editor tiene dos secciones, Privilegios y Universos.
Privilegios#
Un árbol con todos los privilegios de la instalación, en carpetas:
| Carpeta | Qué tiene |
|---|---|
| Administración/Acceso | Los privilegios de administración y de acceso del sistema (Administración del Sistema, Acceso a Empowerment Center…). No se tocan aquí. |
| Lectura de datos/estructuras | Los privilegios de acceso a datos, como «Datos confidenciales (costes y márgenes)» o «Zona Norte» en la demostración. |
| Edición de datos/estructuras | Los privilegios de edición, con los genéricos del sistema: Insertar registros (genérico), Modificar registros (genérico), Eliminar registros (genérico) y Modificar dimensión (genérico). |
Solo se crean carpetas y privilegios en Lectura de datos/estructuras, en Edición de datos/estructuras y en sus carpetas. Lo del sistema no cambia de nombre ni se elimina.
Para crear un privilegio:
- Pulse Nuevo privilegio… (o elíjalo en el menú de una carpeta).
- Escriba el Nombre, por el que lo elegirán en los roles, las dimensiones y los universos. Tiene que ser distinto de los de su carpeta.
- Elija la Carpeta.
- Pulse Crear privilegio.
Un privilegio nuevo no lo tiene nadie hasta que se asigna a un rol. Los selectores de privilegio del editor (en una dimensión, una tabla o un universo) ofrecen también Nuevo privilegio… para crearlo sin salir.
Los privilegios y las carpetas se mueven arrastrándolos, con Mover a… o con Alt y las flechas, y se renombran con F2. Cada cambio se guarda al momento.
Al elegir un privilegio, su panel dice:
- Quién lo tiene: cuántos roles y usuarios. Se da a los usuarios con los roles, en Usuarios y roles.
- Dónde se usa: las dimensiones, métricas, tablas, universos, listas, libros, páginas del portal y datos externos que protege, en todas las conexiones, con lo que pasaría con cada grupo si se eliminara.
Eliminar un privilegio#
Eliminar un privilegio no abre nada de lo que protegía:
| Lo que protegía | Qué pasa al eliminarlo |
|---|---|
| Dimensiones y métricas | Pasan a Administración del Metadata: solo las ven quienes la tienen. |
| La edición de una dimensión o una tabla de hechos | Pasa a los privilegios genéricos. |
| La edición de los valores de una tabla auxiliar | Nadie puede hacerlo desde los formularios. |
| Listas | Pasan a Administración del Metadata. |
| Libros, páginas del portal y datos externos | Quedan cerrados para quien no los administre. |
| Universos | No se puede eliminar mientras un universo lo use. |
Una carpeta solo se elimina vacía: «No se puede eliminar la carpeta «…»: no está vacía (…). Mueva o elimine antes lo que tiene».
El privilegio de acceso de una dimensión o una métrica#
Quien no tiene el privilegio de acceso de un dato:
- no lo ve en los asistentes, en el árbol de presentación ni en el editor de segmentaciones;
- recibe los documentos que lo usan calculados sin él, con un aviso que cuenta lo que falta sin nombrarlo;
- no puede guardar un documento que lo usa: para él es de solo lectura;
- no puede pedirlo por la API, que responde que hay columnas ocultas sin decir cuáles.
Una fórmula sobre métricas solo la ve quien ve todas las métricas que usa, aunque ella no tenga privilegio propio.
Cambiar el privilegio de acceso#
- En el panel de la dimensión o la métrica, en Acceso, pulse Cambiar… (o Cambiar privilegio de acceso… en Dónde se usa).
- Elija el Privilegio de acceso.
- Lea A quién afecta: quién Deja de verla y quién Pasa a verla, con los roles que tienen el privilegio de antes y el nuevo, y los documentos que se verán sin ella.
- Pulse Cambiar privilegio.
El cambio se guarda en ese momento, sin esperar a Guardar cambios del panel.


Cambiar los privilegios de toda una tabla#
Para proteger de una vez todas las dimensiones o todas las métricas de una tabla de hechos:
- En el panel de la tabla, pulse Cambiar los privilegios de toda la tabla….
- En A qué se aplica, marque las dimensiones, las métricas o las dos.
- Elija el Privilegio de acceso y, para las dimensiones, el Privilegio de edición de las dimensiones. Lo que deje en No cambiarlo no cambia.
- Lea el resumen y pulse Cambiar privilegios.
Los privilegios de edición#
| Dónde | Privilegios | Por defecto |
|---|---|---|
| Tabla de hechos, Propiedades | Insertar registros, Modificar registros y Eliminar registros | Los genéricos de cada operación |
| Dimensión, General | Privilegio de edición: cambiar solo el valor de esa columna | Modificar dimensión (genérico) |
| Tabla auxiliar, Altas y bajas desde los formularios | Dar de alta valores, Cambiar valores y Eliminar valores | Nadie |
Quien puede modificar la tabla cambia todas sus columnas; quien solo tiene el de una dimensión, solo esa. Un formulario nunca escribe una columna que el usuario no ve. Para que nadie edite nada, basta con no dar a ningún rol los genéricos ni los privilegios que ponga.
Universos#
Un universo limita las filas de una tabla de hechos que ve quien tiene un privilegio. En la demostración hay 10: para cada una de las cinco zonas, uno en Clientes y otro en Vendedores. Quien tiene «Zona Norte» solo ve los clientes y los comerciales del Norte y, por las relaciones, sus facturas, incidencias, objetivos y líneas de factura, que no tienen universo propio: les llegan los de sus clientes y sus vendedores.
Las reglas#
- Un universo se aplica a quien tiene su privilegio por alguno de sus roles.
- Quien tiene varios privilegios con universos en la misma tabla ve las filas de cualquiera de ellos (en la demostración, «jefe.noreste» ve el Norte y el Este).
- Quien no tiene ningún privilegio con universo en una tabla ve todas sus filas.
- Se propaga a las tablas de detalle por las relaciones: el universo de una maestra limita las filas de sus detalles en cualquier consulta, aunque la maestra no esté en ella.
- Se aplica también a los valores que se eligen de una tabla auxiliar que es de hechos, a las listas, a los formularios y a la API.
Crear un universo#
- En Seguridad, elija Universos y pulse Nuevo universo….
- Elija la Tabla: la tabla de hechos cuyas filas limita.
- Elija el Privilegio al que se aplica.
- Escriba la Condición: una condición SQL del motor, sin
WHERE, sobre las columnas de la tabla. - Pulse Probar para que la base de datos compruebe la condición sin ejecutarla.
- Lea A quién afecta: los usuarios que pasan a ver menos filas y los documentos afectados.
- Pulse Crear universo.


En la condición, ECenter pone delante de cada columna el alias de la tabla en la consulta. Si necesita ponerlo en otro sitio (dentro de una subconsulta, por ejemplo), escriba [@] donde vaya. Los dos de la demostración (PostgreSQL):
-- Clientes de la zona Norte
"COD_ZONA" = 'N'
-- Comerciales de la zona Norte, con el alias donde se indica
[@]."COD_ZONA" = 'N'
Una tabla que hereda el universo de su maestra no necesita otro que diga lo mismo: las facturas de la demostración no lo llevan, porque les llega el de sus clientes, y uno propio solo repetiría la condición en cada consulta. Una tabla sin relación con la que lleva la zona sí lo necesitaría, con una subconsulta:
-- Facturas de clientes de la zona Norte, si las facturas no tuvieran relación con los clientes
"COD_CLIENTE" IN (SELECT "COD_CLIENTE" FROM "COMERCIAL"."CLIENTES" WHERE "COD_ZONA" = 'N')
La condición puede tener hasta 1024 caracteres y se escribe en el SQL del motor de la conexión.
Cambiar o eliminar un universo#
La lista de universos se filtra por Tabla. Al elegir uno, su detalle dice la tabla, el privilegio y la condición («Quien tenga «Zona Norte» solo ve las filas de «Clientes» que cumplen la condición, y las de sus tablas de detalle»), con Probar la condición.
- Cambiar… abre el diálogo para cambiar el privilegio o la condición. La tabla de un universo no se cambia: para otra, elimínelo y cree otro. Pulse Guardar universo.
- Eliminar… enseña antes a quién afecta: quienes tenían el privilegio pasan a ver todas las filas.
Atención
Un universo mal escrito puede dejar ver filas que no debía, o ninguna. Pruébelo siempre con Probar y, después, con un usuario de prueba que tenga el privilegio.