Description des synonymes

Un synonyme est un objet de base de données utilisé aux fins suivantes :

  • Il fournit un nom de remplacement pour un autre objet de base de données, appelé « objet de base », qui peut exister sur un serveur local ou distant.

  • Il fournit une couche d'abstraction qui protège une application cliente contre les modifications apportées au nom ou à l'emplacement de l'objet de base.

Par exemple, considérez la table Employee de l'exemple de base de données AdventureWorks2008R2, situé sur un serveur nommé Server1. Pour faire référence à cette table à partir d'un autre serveur, Server2, une application cliente devrait utiliser le nom en quatre parties Server1.AdventureWorks.HumanResources.Employee. En outre, si l'emplacement de la table devait changer, par exemple vers un autre serveur, l'application cliente devrait être modifiée de façon à refléter ce changement.

Pour faire face à ces deux situations, vous pouvez créer un synonyme, en l'occurrence EmpTable, sur le serveur Serveur2 pour la table Employee située sur le serveur Serveur1. Une fois l'opération réalisée, l'application cliente doit uniquement utiliser le nom à une seule partie EmpTable pour référencer la table Employee. De même, si l'emplacement de la table Employee change, vous devez modifier le synonyme EmpTable de manière à ce qu'il pointe vers le nouvel emplacement de la table Employee. Étant donné qu'il n'existe pas d'instruction ALTER SYNONYM, vous devez supprimer le synonyme EmpTable, puis le recréer avec le même nom, mais en le faisant pointer vers le nouvel emplacement de la table Employee.

Un synonyme est un objet appartenant à un schéma et, à ce titre, son nom doit être unique. Vous pouvez créer des synonymes pour les objets de base de données suivants :

Procédure stockée d'un assembly (CLR)

Fonction table d'un assembly (CLR)

Fonction scalaire d'un assembly (CLR)

Fonctions d'agrégation d'un assembly (CLR)

Procédure de filtre de réplication

Procédure stockée étendue

Fonction scalaire SQL

Fonction table SQL

Fonction table inline SQL

Procédure stockée SQL

Vue

Table1 (définie par l'utilisateur)

1 Comprend des tables temporaires locales et globales

Notes

Les noms en quatre parties des objets de base de fonction ne sont pas pris en charge.

Un synonyme ne peut pas être l'objet de base d'un autre synonyme ni référencer une fonction d'agrégation définie par l'utilisateur.

La liaison entre un synonyme et son objet de base se fait uniquement par le nom. Toute vérification d'existence, de type et d'autorisations sur l'objet de base est différée jusqu'à l'exécution. Par conséquent, l'objet de base peut être modifié, supprimé ou bien supprimé et remplacé par un autre objet portant le même nom que l'objet de base initial. Par exemple, supposons un synonyme, MesContacts, qui référence la table Person.Person dans Adventure Works. Si la table Person est supprimée et remplacée par une vue nommée Person.Person, MesContacts référence maintenant la vue Person.Person.

Les références aux synonymes ne sont pas liées au schéma. Par conséquent, un synonyme peut être supprimé à tout moment. Toutefois, si vous supprimez un synonyme, vous courez le risque de laisser des références non résolues à celui-ci. Ces références ne sont trouvées qu'au moment de l'exécution.

Synonymes et schémas

Si vous disposez d'un schéma par défaut qui ne vous appartient pas et que vous souhaitez créer un synonyme, vous devez qualifier le nom du synonyme avec le nom d'un schéma dont vous êtes propriétaire. Par exemple, si vous êtes propriétaire d'un schéma x, mais que y est votre schéma par défaut et que vous utilisez l'instruction CREATE SYNONYM, vous devez faire précéder le nom du synonyme du schéma x, au lieu d'attribuer au synonyme un nom à une seule partie. Pour plus d'informations sur la création des synonymes, consultez CREATE SYNONYM (Transact-SQL).

Octroi d'autorisations sur un synonyme

Seuls les propriétaires de synonymes, les membres de db_owner ou ceux de db_ddladmin peuvent accorder une autorisation sur un synonyme.

Vous pouvez accorder, refuser ou révoquer tout ou partie des autorisations suivantes sur un synonyme :

CONTROL

DELETE

EXECUTE

INSERT

SELECT

TAKE OWNERSHIP

UPDATE

VIEW DEFINITION