SYNONYM ve Kullanımı

Veritabanı içerisinde nesnelere verilen ALIAS ‘tır.  Hangi nesneler için Synonym oluşturulmaktadır ;

  1. Stored Procedure
  2. Table-Valued Function
  3. Scalar Function
  4. Aggregate Function
  5. Extenden Stored Procedure
  6. View
  7. Table

Syntax :

CREATE SYNONYM <Synonym_Adi>

FOR <Database_Adi>.<Schema_Adi>.<Tablo_Adi>

SSMS ile Synonym leri görme ;

Synonym oluşturulduktan sonra belirtilen asıl nesneye synonym üzerinden erişim sağlanabilmektedir.

Bu ihtiyaç Neden Ortaya Çıkmıştır ?

Bunun birden fazla sebebi bulunmaktadır aslında ama biz en temel sebeplerindne birine değinecek olur isek ; uygulama içerisinden bir tabloya Server bazlı ulaşmak istediğimizde ki süreci kod blokları içerisinde birden fazla yerde kullandığımızı düşünelim. Tablomuzu başka bir Server ‘a taşıdığımızda kod un yazılan her yerinde değişiklik yapmamız gerekece. Fakat Synonym ile erişmiş olsa idik sadece Synonym in erişim metodunu değiştirmemiz yeterli olacaktı. Bu ve bunun gibi süreçler için Synonym kullanmak çok ama çok faydalı.

Birkaç Örnek yapacak olur isek ;

Yeni bir Synonym SSMS üzerinden oluşturmak istediğimizde Synonym ‘in üzerine gelip sağ tıklıyoruz ve New Synonym sekmesine basıyoruz.

Aşağıda ki gibi bir ekran karşımıza çıkıyor.

Bu ekranda Synonym imize ait tüm süreçleri dolduruyoruz.

Synonym Name : Synonym ‘imize vereceğimiz ismi bu alana giriyoruz.

Synonym Schema : Synonym ‘imizin bulundurulacağı Schema yı belirtiyoruz.

Server Name : Synonym ‘imizin oluşturulacağı Server ‘ı belirtiyoruz.

Database Name : Synonym ‘imizin hangi veritabanı üzerinde oluşacağını belirtiyoruz.

Schema  : Erişilecek Nesnenin Schema bilgisini belirtiyoruz.

Object Type : Erişilecek Nesnenin tipini belirtiyoruz.(Ör: Table,Function,Stored Proc vs.)

Object Name :  Erişilecek Nesnenin Adı

Örneğimizde biz kendi yapımıza göre alanlarımızı doldurduk. Permission sekmesine geçtiğimizde ise ;

Burada database imize Map lediğimiz kullanıcıların yetkilendirmelerini de bu ekrandan sağlayabiliyoruz.

Daha sonra OK diyerek Synonym izi oluşturmuş oluyoruz. Aynı işlemi aşağıda ki script ile de oluşturabiliriz.

Script ile Synonym oluşturma :

USE [SQLTURKIYE]
GO
CREATE SYNONYM [dbo].[Customer] FOR [YK\SQLTURKIYE2016].[SQLTURKIYE].[sales].[Customer]
GO

Peki Synonym imiz üzerinden SELECT çekmek istersek ;

USE [SQLTURKIYE]
GO
SELECT * FROM [Customer]

Veritabanımız üzerinde bulunan Synonym lerimizi nasıl sorgularız.

SSMS üzeirnden ;

Script ile ;

select * from sys.synonyms

 

Teşekkürler Kolay Gelsin.

Leave a Reply

Your email address will not be published. Required fields are marked *