Para acceder desde una base de datos Oracle a objetos de otra base de datos Oracle la manera más sencilla es utilizar un DBLINK (que sea la más sencilla no significa que siempre sea la más aconsejable, el abuso de los DBLINKS puede generar muchos problemas, tanto de rendimiento como de seguridad)
Para ello es necesario, con un usuario que posea el privilegio CREATE DATABASE LINK, crear el DBLINK en la base de datos origen (A) mediante una sencilla sentencia como la siguiente:
'LNK_DE_A_a_B' es el nombre del link, 'USUARIO' y 'CONTRASEÑA' son los identificadores del usuario que utilizará el link para conectarse, los permisos del cual heredarán todos los accesos a través del link, y B es el nombre de la instancia de la base de datos.
A través del DBLINK se puede conectar con los objetos de la base de datos remota con los permisos que tenga el usuario que se ha proporcionado en la sentencia de creación.
Para referenciar un objeto de la base de datos remota se ha de indicar el nombre del objeto, concatenado con el carácter '@' y el nombre que se le ha dado al DBLINK.
Ejemplo: select * from TABLA@LNK_DE_A_a_B
Para ampliar información se puede consultar la documentación de Oracle que se proporciona online en documentacion oracle create database
Si lo que se quiere es acceder a una base de datos de otro fabricante, se puede crear el DBLink utilizando Heterogeneous Services. Se puede consultar cómo hacerlo con SQLServer en el artículo Heterogeneous services: Conexión desde Oracle a SQLServer
Añadir a esta estupenda explicación que ademas de todos estos pasos , es necesario modificar el archivo tnsnames.ora de la base de datos origen, referenciando la base de datos destino, por ejemplo, si mi origen es DES, y pretendo atacar a PRD, tendría que tocar el tnsnames de DES
DES.WORLD=
(DESCRIPTION =
(SDU = 32768)
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = PRD.WORLD)
(PROTOCOL = TCP)
(HOST = "nombre host")
(PORT = 1527)
)
)
(CONNECT_DprdATA =
(SID = )
(GLOBAL_NAME = PRD.WORLD)
)
)
Saludos a todos.
Moisés Serrano.
No necesariamente se debe modificar el tnsnames.ora, a partir de Oracle 8 se puede crear un dblink asi:
create database link V805.NL.ORACLE.COM
connect to repadmin identified by repadmin using
'(description=(address=(protocol=tcp)(host=nldock0592.nl.oracle.com)
(Port = 1521) ) (connect_data= (sid=v805)))';
hola, queria ver si hay alguna manera de accesar con algun nombre de usuario y contraseña universal o algo asi porque acabo de instalar el sql plus, pero no tengo esos datos. gracias y espero me pueda ayudar alguien
Puedes ver como entrar en SQLPlus con un usuario Oracle con rol sysdba en:
http://www.dataprix.com/es/entrar-en-sqlplus-como-dba-sin-introducir-pas...
Carlos Fernández
Analista de sistemas