Synonym Nedir ve Nasıl Kullanılır?

30 Oca by NURULLAH ÇAKIR

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

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir