Preparar la base de datos#
Antes de dar de alta una conexión, quien administra la base de datos del cliente tiene que preparar un usuario para Empowerment Center, un esquema de trabajo y los permisos. Esta página dice qué necesita ECenter en cada motor y por qué.
Antes de empezar#
- Hace falta la ayuda de quien administra la base de datos del cliente: los permisos se dan en el motor, no en ECenter.
- ECenter 8.0 trabaja con PostgreSQL, SQL Server y Oracle, con su controlador JDBC. Las bases de datos de fichero que admitía EC7 no se admiten como conexión; los ficheros de Access y DBF se pueden traer como datos externos.
Lo que ECenter hace en la base de datos del cliente#
| Dónde | Qué hace | Permisos que necesita |
|---|---|---|
| Esquemas de datos | Lee las tablas y vistas que se analizan y su estructura (columnas, claves primarias y foráneas, índices). | Lectura (SELECT) de las tablas y vistas, y ver su definición en el diccionario del motor. |
| Esquemas de datos, solo si se usan formularios | Da de alta, cambia y elimina registros de las tablas que se editan en los formularios. | INSERT, UPDATE y DELETE de esas tablas, y uso de las secuencias que nombre el SQL de siguiente valor. |
| Esquema de trabajo | Crea, carga, vacía y borra sus propias tablas: las de las listas (ECW_LIST_…), las de las agrupaciones (ECW_GRP_…), las de los valores de una consulta con muchos valores (ECW_VAL_…) y las de los datos externos (ECX_…). |
Crear y borrar tablas e índices, insertar, actualizar, borrar y bloquear filas en ellas. |
| Procedimientos almacenados, solo si se programan | Los ejecuta el planificador con sus argumentos. | EXECUTE de cada procedimiento. |
Nota
ECenter nunca cambia la estructura de las tablas de los esquemas de datos. Todo lo que crea va al esquema de trabajo, que tiene que ser distinto de los de datos.
El usuario de la conexión#
Cree un usuario propio para ECenter, con una contraseña que no use nadie más. Es el que se escribe en el diálogo de la conexión y el que abre todas las sesiones con la base de datos: las de los cubos, las listas, los formularios, el catálogo y la planificación.
La forma más sencilla, en los tres motores, es que ese usuario sea el dueño del esquema de trabajo y tenga lectura sobre los esquemas de datos.
Ejemplo orientativo, con los esquemas de la demostración (COMERCIAL de datos y ECW de trabajo); adáptelo a sus normas:
CREATE ROLE ecenter LOGIN PASSWORD 'cambie-esta-clave';
-- El esquema de trabajo, del usuario de ECenter
CREATE SCHEMA "ECW" AUTHORIZATION ecenter;
-- Lectura de los datos
GRANT USAGE ON SCHEMA "COMERCIAL" TO ecenter;
GRANT SELECT ON ALL TABLES IN SCHEMA "COMERCIAL" TO ecenter;
ALTER DEFAULT PRIVILEGES IN SCHEMA "COMERCIAL" GRANT SELECT ON TABLES TO ecenter;
En PostgreSQL un nombre creado sin comillas se guarda en minúsculas (ecw); con comillas, tal como se escribe ("ECW").
Ejemplo orientativo; adáptelo a sus normas:
CREATE LOGIN ecenter WITH PASSWORD = 'cambie-esta-clave';
USE comercial;
CREATE USER ecenter FOR LOGIN ecenter;
-- El esquema de trabajo, del usuario de ECenter, y permiso para crear tablas en la base de datos
CREATE SCHEMA ECW AUTHORIZATION ecenter;
GRANT CREATE TABLE TO ecenter;
-- Lectura de los datos
GRANT SELECT ON SCHEMA::COMERCIAL TO ecenter;
GRANT VIEW DEFINITION ON SCHEMA::COMERCIAL TO ecenter;
En Oracle un esquema es un usuario. Lo más sencillo es conectarse como el propietario del esquema de trabajo, con lectura sobre las tablas de datos:
CREATE USER ECW IDENTIFIED BY "cambie-esta-clave" QUOTA UNLIMITED ON USERS;
GRANT CREATE SESSION, CREATE TABLE TO ECW;
-- Lectura de cada tabla o vista de datos (o un rol con ellas)
GRANT SELECT ON COMERCIAL.FACTURAS TO ECW;
Si el usuario de la conexión no es el propietario del esquema de trabajo, necesita además CREATE ANY TABLE, CREATE ANY INDEX, DROP ANY TABLE, LOCK ANY TABLE, SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE y DELETE ANY TABLE.
En Oracle un nombre creado sin comillas se guarda en mayúsculas (ECW).
El esquema de trabajo#
- Tiene que existir antes de dar de alta la conexión: ECenter no lo crea.
- Escriba su nombre exactamente como lo guarda el motor, con sus mayúsculas y minúsculas. ECenter lo usa tal cual y entre comillas. Si solo coincide sin distinguir mayúsculas, Probar no lo da por bueno y dice cómo se llama: «El esquema de trabajo se llama «ecw» en la base de datos, no «ECW»: escríbalo así, con esas mayúsculas, porque ECenter lo usa tal cual».
- Los esquemas de datos sí se encuentran sin distinguir mayúsculas.
- Varias conexiones de una misma instalación a la misma base de datos pueden usar el mismo esquema de trabajo; las dos de la demostración usan
ECW. Los nombres de sus tablas llevan el identificador de cada lista, agrupación o carga, que es único en la instalación. Dos instalaciones de ECenter (producción y pruebas, por ejemplo) no deben compartir un esquema de trabajo: sus identificadores coincidirían. - No lo use para otras cosas: el catálogo no lo lee como esquema de datos, salvo para reconocer las tablas de los datos externos.
Citar los nombres#
La opción Citar los nombres de tablas y columnas decide cómo escribe ECenter los nombres en el SQL:
| Con la opción marcada | Sin marcar |
|---|---|
Cada esquema, tabla y columna va entre comillas ("COMERCIAL"."CLIENTES"."COD_ZONA", o entre corchetes en SQL Server), con el nombre exacto que da el catálogo. |
Los nombres van sin comillas, y el motor los convierte a su forma (mayúsculas en Oracle, minúsculas en PostgreSQL). |
Admite nombres en minúsculas, con espacios o con letras como la Ñ (OBJETIVOS."AÑO" en la demostración). |
Solo admite identificadores llanos: una letra o _ y después letras, cifras, _ o $ (y # en Oracle y SQL Server). Un nombre con otro carácter da un error al consultar («no se puede escribir sin comillas»). |
Una conexión nueva la trae marcada. Déjela marcada salvo que tenga una razón para quitarla: con ella, ECenter escribe los nombres tal como los ve en el catálogo y no depende de cómo los convierte cada motor.
Importante
Cambiar esta opción en una conexión con metadata cambia todo el SQL que se genera. Hágalo antes de diseñar el metadata, o pruebe después los documentos con Validar contenido (ver Uso y validación).
Comprobar que todo está bien#
El botón Probar del diálogo de la conexión hace con los datos escritos, sin guardar nada, lo mismo que ECenter necesita después:
- Abre una sesión con el usuario y la contraseña.
- Comprueba que existen los esquemas de datos y el de trabajo.
- Crea una tabla en el esquema de trabajo (
ECW_PROBE_…) y la borra.
Si algo falla, dice cuál de los pasos y el motivo que da la base de datos. Ver Dar de alta y probar una conexión.