Supongamos que tenemos tres esquemas como lo diagrama la
figura anterior:
- Esquema_1: Este contiene dos tablas llamadas “Tabla_1” y “Tabla_2”
- Esquema_2: Se desea crear una vista llamada “Vista_1” la cual utilice las tablas “Tabla_1” y “Tabla_2” del “Esquema_1”
- Esquema_3: En este se desea poder utilizar la vista “Vista_1” del esquema “Esquema_2”
Inicialmente para poder crear la vista en el “Esquema_2” se
debe de ejecutar los GRANT correspondientes para el permitir que este esquema
pueda consultar en “Esquema_1”. Por lo que estando en “Esquema_1” se debe de
ejecutar las siguientes sentencias:
GRANT SELECT ON Esquema_1.Tabla_1 TO Esquema_2 WITH GRANT OPTION; GRANT SELECT ON Esquema_1.Tabla_2 TO Esquema_2 WITH GRANT OPTION;
Con las dos instrucciones anteriores ya será posible crear
la vista en “Esquema_2”, por medio de la siguiente instrucción:
CREATE VIEW Vista_1 AS SELECT * FROM Esquema_1.Tabla_1 t1, Esquema_2.Tabla_2 t2 WHERE t1.campo_a = t2.campo_c;
Con esto se habrá creado la vista en el “Esquema_2”.
Ahora se desea dar permisos a “Esquema_3” para que pueda
consumir la vista, para esto se debe de ejecutar las siguientes sentencias
desde “Esquema_2”:
GRANT SELECT ON Esquema_2.Vista_1 TO Esquema_3;
Y con esto se podrá consultar la Vista_1 desde Esquema_3. Espero que este post les haya sido de ayuda.