Un sinónimo es un nombre
alternativo para un objeto. Si existieran sinónimos para los objetos, entonces
cualquier sentencia SQL puede dirigirse al objeto, ya sea por su nombre real, o
su sinónimo. Esto puede parecer trivial. No lo es. El uso de sinónimos
significa que una aplicación puede funcionar para cualquier usuario,
independientemente del esquema propietario, las vistas y tablas o incluso en
qué base de datos las tablas residen. Ejemplo:
select * from
hr.employees@prod;
El usuario que emite la sentencia debe conocer que la tabla Employees
pertence al esquema HR en la base de datos identificada por el Database Link.
Si un sinónimo ha sido creado con esta sentencia:
create public
synonym emp for hr.employees@prod;
Entonces todos los usuarios solo necesitan escribir lo siguiente:
select * from emp;
Esto da Independencia de datos y Transparencia en la localización. Tablas
y Vistas pueden ser renombrados y reubicados si tener que cambiar nada de
código. Solo los sinónimos tienen que ser reajustados.
Además de sentencias SELECT, instrucciones DML pueden dirigirse a los
sinónimos como si se trataran de los objetos al que se refieren.
Sinónimos Privados son Objetos de Esquema. Estos deben estar en su
propio esquema, o deben ser cualificados con su nombre de esquema. Sinónimos
Públicos existen independientemente del Esquema.
Un sinónimo público puede ser referido por cualquier usuario al que se
le ha concedido permiso para verlo sin la necesidad de cualificarlo con el nombre
de esquema. Sinónimos Privados debe ser un nombre único dentro de su esquema.
Sinónimos Públicos pueden tener el mismo nombre como un objeto de esquema.
Cuando ejecutamos sentencias que van dirigidos a objetos sin cualificar un
esquema, Oracle buscara al objeto en el esquema local, y solo si no es
encontrado, lo buscara como un Sinónimo Publico.
La sintaxis para crear un Sinónimo es la siguiente:
CREATE [PUBLIC]
SYNONYM synonym FOR object;
Un usuario necesitara tener asignado permisos para crear sinónimos
privados y permisos para crear sinónimos públicos. Usualmente. Solo el
administrador de bases de datos puede crear y eliminar sinónimos públicos. Esto
es porque su presencia o ausencia afectara a todos los usuarios.
El “public” en “public synonym” significa que no es un objeto de
esquema y no puede por lo tanto se cualificado con un nombre de esquema. Esto
no significa que todo mundo tiene permisos para utilizarlo.
Para eliminar un sinónimo:
DROP [PUBLIC] SYNONYM synonym;
Si el objeto al cual el sinónimo se refiere es eliminado, el sinónimo continua
existiendo. Cualquier intento de uso devuelve un error. En este aspecto, los sinónimos
comparte el mismo compartimiento como las vistas. Si el objeto es nuevamente
creado, el sinónimo debe ser recompilado para su uso. Esto sucederá automáticamente
cuando se utilizado nuevamente o lo podemos realizar explícitamente:
ALTER SYNONYM synonym COMPILE;
Comentarios
Publicar un comentario