Descripción de sinónimos
Un sinónimo es un objeto de base de datos que sirve para los siguientes objetivos:
Proporciona un nombre alternativo para otro objeto de base de datos, denominado objeto base, que puede existir en un servidor local o remoto.
Proporciona un nivel de abstracción que protege una aplicación cliente de cambios realizados en el nombre o la ubicación del objeto base.
Por ejemplo, considere la tabla Employee de la base de datos de ejemplo AdventureWorks2008R2, situada en un servidor denominado Server1. Para hacer referencia a esta tabla desde otro servidor, Server2, una aplicación cliente tendría que usar el nombre de cuatro partes Server1.AdventureWorks.HumanResources.Employee. Además, si la ubicación de la tabla cambiara, por ejemplo a otro servidor, la aplicación cliente debería modificarse para reflejar ese cambio.
Para solucionar ambas cosas, puede crear un sinónimo, EmpTable, en Server2 para la tabla Employee en Server1. Ahora la aplicación cliente sólo tiene que usar el nombre de una parte, EmpTable, para hacer referencia a la tabla Employee. Además, si la ubicación de la tabla Employee cambia, tendrá que modificar el sinónimo, EmpTable, para que apunte a la nueva ubicación de la tabla Employee. Puesto que no hay ninguna instrucción ALTER SYNONYM, primero tiene que quitar el sinónimo, EmpTable, y, a continuación, volver a crearlo con el mismo nombre, pero apuntando a la nueva ubicación de Employee.
Un sinónimo pertenece a un esquema y, al igual que otros objetos de un esquema, el nombre de un sinónimo debe ser único. Puede crear sinónimos para los siguientes objetos de base de datos:
Procedimiento almacenado del ensamblado (CLR) |
Función con valores de tabla del ensamblado (CLR) |
Función escalar del ensamblado (CLR) |
Función de agregado del ensamblado (CLR) |
Procedimiento de filtro de réplica |
Procedimiento almacenado extendido |
Función escalar de SQL |
Función SQL con valores de tabla |
Función SQL con valores de tabla insertados |
Procedimiento almacenado de SQL |
Ver |
Tabla1 (definida por el usuario) |
1 Incluye tablas temporales locales y globales
Nota
No pueden usarse nombres de cuatro partes para objetos base de función.
Un sinónimo no puede ser el objeto base de otro sinónimo y un sinónimo no puede hacer referencia a una función de agregado definida por el usuario.
El enlace entre un sinónimo y su objeto base sólo es mediante el nombre. Todas las comprobaciones de existencia, tipo y permisos en el objeto base se posponen hasta la ejecución. Por tanto, el objeto base puede modificarse, quitarse o quitarse y reemplazarse por otro objeto con el mismo nombre que el objeto base original. Por ejemplo, suponga un sinónimo, MyContacts, que hace referencia a la tabla Person.Person de Adventure Works. Si la tabla Person se quita y se reemplaza con una vista denominada Person.Person, MyContacts hace referencia ahora a la vista Person.Person.
Las referencias a sinónimos no están enlazadas a esquema. Por tanto, un sinónimo puede quitarse en cualquier momento. Sin embargo, al quitar un sinónimo se corre el riesgo de dejar referencias pendientes al sinónimo quitado. Estas referencias sólo se encontrarán en tiempo de ejecución.
Sinónimos y esquemas
Si tiene un esquema predeterminado que no posee y desea crear un sinónimo, debe calificar el nombre del sinónimo con el nombre de un esquema que posea. Por ejemplo, si posee un esquema x, pero y es su esquema predeterminado y utiliza la instrucción CREATE SYNONYM, debe poner un prefijo al nombre del sinónimo con el esquema x, en lugar de asignar un nombre al sinónimo mediante un nombre con una sola parte. Para obtener más información acerca de cómo crear sinónimos, vea CREATE SYNONYM (Transact-SQL).
Conceder permisos para un sinónimo
Sólo los propietarios de los sinónimos, miembros de db_owner o miembros de db_ddladmin pueden conceder permiso para un sinónimo.
Puede conceder (GRANT), denegar (DENY) o revocar (REVOKE) todos o cualquiera de los siguientes permisos para un sinónimo:
CONTROL |
DELETE |
EXECUTE |
INSERT |
SELECT |
TAKE OWNERSHIP |
UPDATE |
VIEW DEFINITION |
Vea también