Synonym Nedir ve Nasıl Kullanılır?
Synonym veritabanı bazındaki bazı nesnelere alias(alternatif farklı bir isim) vermektir. Aşağıdaki nesneler için synonym oluşturulabilir.
Tablo,
View,
Stored Procedure,
Function
Synonym oluşturulduktan sonra yukarıda belirtilen asıl nesneye synonym üzerinden erişilebilir hale gelir.
Peki neden synonym oluşturma ihtiyacı ortaya çıkar?
Uygulama içersinden bir tabloya Server1.Veritabani.Schema.Table şeklinde bir çok farklı yerden kod yazılmış olduğunu düşünün.
Veritabanını Server1’den Server2’ye taşırsanız ya da tabloyu başka bir şemaya taşırsanız bu kod bloğu çalışmayacaktır.
Eğer Tablo,View,Stored Procedure,Function gibi nesnelerin schema’ları ya da bulundukları sunucular değişirse sadece synonym’i silip, tablonun yeni yerini işaret edecek şekilde aynı isimde yeniden oluşturarak kodda hiç değişiklik yapmadan sorunu çözebilirsiniz.
Aşağıdaki şekilde synonym oluşturabilirsiniz. Veritabanı altından Synonym sekmesine sağ tıklayarak New Synonym… diyoruz.
Daha sonra aşağıdaki tablodaki gibi gerekli seçimleri yapıyoruz:
Synonym name: |
Bir isim veriyoruz. |
Synonym schema: |
Synonym’in hangi şema altında oluşturacağımızı seçiyoruz. |
ServerName: |
Synonym’in hangi server’da oluşacağını seçiyoruz. |
Database name: |
Synonym’in oluşacağı veritabanı |
Schema: |
Erişilecek nesnenin ait olduğu şema bilgisi |
Object type: |
Erişilecek nesnenin tipi(Tablo,View,Stored Procedure,Function) |
Object name: |
Erişilecek nesnenin adı |
Daha sonra Permissions sekmesine gelerek Search diyoruz ve veritabanına daha önce map edilmiş bir kullanıcıyı seçerek aşağıda görüldüğü gibi istediğimiz yetkileri veriyoruz. Login’in veritabanına nasıl map edileceğiniz öğrenmek için “Login oluşturmak ve yetkilendirmek” isimli makalemi okuyabilirsiniz.
Synonym’i oluşturduktan sonra aşağıdaki gibi sorgulayabilirsiniz.
Select * from uygulamaview