Creando y administrando sinónimos en Oracle

Un sinónimo es el mecanismo que tiene oracle para darle un nombre alternativo (alias) a un objecto.

De esta forma, si existen varios usuarios en base de datos con objetos en sus esquemas, podremos acceder al objeto de otro esquema sin necesidad de hacer referencia al propietario.

Por ejemplo:

El USUARIO1 quiere acceder a una tabla EMP del USUARIO2 (asumimos que tiene permisos para hacer select sobre la tabla de ese usuario). Si no existe sinónimo, lo tendrá que hacer de la siguiente forma:

select * from usuario2.emp;

Para crear un sinónimo, el usuario que lo haga tiene que tener permiso para crear sinónimos (CREATE SYNONYM system privilege). Este permiso lo puede otorgar un usuario administrador. Si el usuario tiene ese privilegio, podría crear el sinónimo de la siguiente manera:  

create synonym emp for usuario2.emp;

Ahora, el USUARIO1 puede hacer select a la tabla de forma transparente.

select * from emp;

Se pueden crear sinónimos de los siguientes objetos:

  • tablas
  • vistas
  • otros sinónimos
  • objectos a través de database link
  • paquetes, procedimientos y funciones
  • vistas materializadas
  • secuencias
  • tipos
  • java class

La ventaja de crear sinónimos es que elimina la necesidad de espeficar el propietario del esquema con lo que se consigue una capa de abstracción entre el objecto y su esquema.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *