Iluminando los rincones del sin saber

Conocimientos liberados sólo para copiar y pegar, aprender y compartir es lo importante

Archivos por Etiqueta: DataBase

DataBase Link (DBLink) Oracle


Problema: Nos encontramos en un ambiente en donde hay varios esquemas de base de datos por la lógica del negocio (estructura funcional en sistemas demasiado grandes y complejos, o también por políticas de seguridad y mantenimiento de la información).  Estamos en un esquema pero necesitamos acceder a cierta información de otro esquema.

Solución: Podemos crear un sinónimo público de la tabla(s) a la que queremos acceder y utilizarla sin mayor, sin embargo si el esquema al que queremos acceder se encuentra en otro servidor de base de datos, podemos llegar por medio de un DBLink.

Como Crearlo

Se tienen que ejecutar instrucciones tanto de la BD origen (DBFuente) como del lado de la BD en donde será consumida la información (DBDestino).

De lado de DBFuente tenemos que hacer lo siguiente:

  • Crear un usuario
  • Darle permisos a las tablas (otros recursos) a los que queremos a acceder
  • (Opcional, pero buena practica) Crear un rol, y asignarle los permisos a este, y luego asignarle el usuario a este rol, de esta manera es mas fácil su mantenimiento.

CREATE USER usuarioDBLink IDENTIFIED BY passDBLink;
GRANT CONNECT TO usuarioDBLink;
GRANT SELECT ON tablaAConsultar TO usuarioDBLink;

De lado de DBDestino tenemos que hacer lo siguiente:

  • Crear un DBlink.

CREATE PUBLIC DATABASE LINK nombreDBLink
CONNECT TO usuarioDBLink
IDENTIFIED BY passDBLink
USING ‘SID_DBFuente’;   — Este es el SID (Service ID) ubicado en el tsnames (ORACLE_HOME\network\admin\tnsnames.ora) por el cual se conecta a la base de datos fuente.

Consumiendo el DBLink

Para consumir el DBLink basta lo siguiente

SELECT * FROM tablaAConsultar@nombreDBLink;