En las bases de datos , un sinónimo es un alias o nombre alternativo para una tabla , vista , secuencia u otro objeto del esquema . Se utilizan principalmente para que los usuarios puedan acceder de forma intuitiva a los objetos de la base de datos que pertenecen a otros usuarios. También ocultan la identidad del objeto subyacente y dificultan que un programa o usuario malicioso lo ataque ( seguridad por ocultación ). Dado que un sinónimo es simplemente un nombre alternativo para un objeto, no requiere almacenamiento más allá de su definición. Cuando una aplicación utiliza un sinónimo, el sistema de gestión de bases de datos (DBMS ) reenvía la solicitud al objeto base subyacente del sinónimo . Al programar sus aplicaciones para que utilicen sinónimos en lugar de nombres de objetos de la base de datos, se protege de cualquier cambio en el nombre, la propiedad o la ubicación de los objetos, aunque esto implica añadir una capa adicional que también requiere mantenimiento. Los usuarios también pueden tener diferentes necesidades; por ejemplo, algunos pueden desear utilizar un nombre más corto para referirse a los objetos de la base de datos que consultan con frecuencia, lo cual se puede lograr con alias sin tener que renombrar el objeto subyacente ni modificar el código que lo referencia.
Los sinónimos son muy útiles para permitir a los usuarios acceder a objetos que no se encuentran dentro de su esquema . Todos los sinónimos deben crearse explícitamente con el comando CREATE SYNONYM y los objetos subyacentes pueden estar ubicados en la misma base de datos o en otras bases de datos conectadas mediante enlaces de base de datos.
Existen dos usos principales de los sinónimos:
- Invisibilidad de objetos : Se pueden crear sinónimos para mantener el objeto original oculto al usuario.
- Invisibilidad de ubicación : Se pueden crear sinónimos como alias para tablas y otros objetos que no forman parte de la base de datos local.
Cuando se crea una tabla o un procedimiento, se crea en un esquema específico, y otros usuarios solo pueden acceder a él utilizando el nombre de ese esquema como prefijo del nombre del objeto. La solución para esto consiste en que el propietario del esquema cree un sinónimo con el mismo nombre que la tabla.
Sinónimos públicos
Los sinónimos públicos pertenecen a un esquema especial en la base de datos Oracle llamado PUBLIC. Como se mencionó anteriormente, todos los usuarios de la base de datos pueden hacer referencia a los sinónimos públicos. Los sinónimos públicos suelen ser creados por el propietario de la aplicación para las tablas y otros objetos, como procedimientos y paquetes, para que los usuarios de la aplicación puedan ver los objetos.
El siguiente código muestra cómo crear un sinónimo público para la tabla de empleados:
CREAR SINÓNIMO PÚBLICO empleados para hr . empleados ;Ahora cualquier usuario puede ver la tabla simplemente escribiendo su nombre original. Si lo desea, puede proporcionar un nombre diferente para esa tabla en la instrucción CREATE SYNONYM. Recuerde que el administrador de la base de datos debe crear sinónimos públicos. El hecho de que pueda ver una tabla a través de un sinónimo público (o privado) no significa que también pueda realizar operaciones de SELECT, INSERT, UPDATE o DELETE en la tabla. Para poder realizar esas operaciones, un usuario necesita privilegios específicos para el objeto subyacente, ya sea directamente o mediante roles del propietario de la aplicación.
Sinónimos privados
Un sinónimo privado es un sinónimo dentro de un esquema de base de datos que un desarrollador suele utilizar para enmascarar el nombre real de una tabla, una vista, un procedimiento almacenado u otro objeto de base de datos en el esquema de una aplicación.
A diferencia de los sinónimos públicos, los sinónimos privados solo pueden ser referenciados por el esquema propietario de la tabla u objeto. Es recomendable crear sinónimos privados cuando se desea hacer referencia a la misma tabla desde diferentes contextos. Los sinónimos privados anulan las definiciones de sinónimos públicos. Para crear sinónimos privados, se procede de la misma manera que para crear sinónimos públicos, pero se omite la palabra clave PUBLIC en la instrucción CREATE.
El siguiente ejemplo muestra cómo crear un sinónimo privado llamado "direcciones" para la tabla "ubicaciones". Tenga en cuenta que, una vez creado el sinónimo privado, puede referirse a él exactamente igual que al nombre original de la tabla.
CREAR SINÓNIMOS direcciones PARA hr . ubicaciones ;Echa un sinónimo
Los sinónimos, tanto privados como públicos, se eliminan de la misma manera mediante el comando DROP SYNONYM, pero existe una diferencia importante. Si se elimina un sinónimo público, es necesario añadir la palabra clave PUBLIC después de DROP.
DROP SINONYM direcciones ;La vista ALL_SYNONYMS (o DBA_SYNONYMS) proporciona información sobre todos los sinónimos de su base de datos.
Referencias
- Palinski, John Adolph (2002). Oracle SQL and PL/SQL Handbook: A Guide for Data Administrators, Developers, and Business Analysts . Addison–Wesley . ISBN 978-0-201-75294-6.
- Gennick, Jonathan (2004). Oracle SQL*Plus: la guía definitiva . O'Reilly Media . ISBN 978-0-596-00746-1.
- Alapati, Sam R (2005). Administración experta de Oracle Database 10g . Apress . ISBN 978-1-59059-451-3.
- Bobrowski, Steve. Oracle Database 10g Express Edition para Windows: Guía práctica . McGraw-Hill . ISBN 978-0-07-226331-2.
- Modelado de datos
- Sistemas de gestión de bases de datos
- Bases de datos