ORACLE SQL Dersleri – Synonym

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.

ORACLE SQL Dersleri – Views

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..

 

About Deniz Parlak

Hi, i’m Security Data Scientist & Data Engineer at My Security Analytics. I have experienced Advance Python, Machine Learning and Big Data tools. Also i worked Oracle Database Administration, Migration and upgrade projects. For your questions [email protected]

Leave a Reply

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