Merhabalar, bu yazımızda kısaca synonym konusuna bakacağız. Bu yazıya geçmeden önce bir önceki yazımızı okumanızı tavsiye ederiz.
Synonym :
Synonym türkçe karşılığı ile eş anlamlı demektir, aslında veritabanında yaptığı iş’ de ismiyle uyumludur.
Synonym kullanmamızın temel amacı, uzun isimli objelere ulaşımın kolaylaşmasıdır, bir diğer taraftan da veritabanı güvenliğini sağlamaktır.
Synonym iki çeşit olarak kullanılabilir, public veya private
Öncelikle Synonym oluşturacak şemanın şu yetkilere sahip olması gerekir,
- PRIVATE SYNONYM oluşturmak için CREATE SYNONYM yetkisine sahip olması gerekir.
- Farklı bir kullanıcıya ait şemaya PRIVATE SYNONYM oluşturmak için CREATE ANY SYNONYM yetkisi gerekir.
- PUBLIC SYNONYM oluşturmak için CREATE PUBLIC SYNONYM yetkisi gerekir.
Kullanımı :
Public synonym:
Bu synonym türü ile objeye tüm veritabanı kullanıcıları erişebilir.
create [public] synonym synonym_name for tablo
Örnek ile gösterelim,
CREATE PUBLIC SYNONYM emp_loc for HR.EMPLOYEES;
SELECT * FROM emp_loc;
Görüldüğü gibi SYS şemasında olduğumuz halde, artık şema ismi vermeden belirtmiş olduğumuz isimle tabloya erişebildik.
Bu oluşturduğumuz PUBLIC SYNONYM olduğu için tüm şemalar bu SYNONYM ‘e ulaşabilir.
Private synonym:
Birde PRIVATE SYNONYM için örnek yapalım.
CREATE SYNONYM prvt_exm for HR.LOCATION; -- Bu adımda select sorgumuzdan önce farklı bir şema ile bağlantı yapalım. SELECT * FROM prvt_exm;
SYNONYM ‘leri sadece tablolarda kullanmak zorunda değiliz, sequence,view, java class,.. gibi objeler için de kullanabiliriz.
Resimde gördüğünüz gibi oluşturduğumuz PRIVATE SYNONYM farklı bir şemadan görüntülenemiyor.
Bu yazının sonuna geldik bir başka yazıda görüşmek üzere, hoşçakalın..