Farklı şemaya ait database link’in drop işlemi

19 Nis by Ahmet Duruöz

Farklı şemaya ait database link’in drop işlemi

Oracle veritabanlarında public olmayan , bir şemaya ait db link drop edilirken, ilgili db link’i drop eden kullanıcı şeması altında arar. Eğer farklı bir şemadaki db link drop ediliyorsa , db link bulunamadı şeklinde hata alınacaktır. Bu hatanın alınmaması için db link sahibi olan şemada basit bir prosedür oluşturularak , herhangi bir şemaya execute yetkisi verilirse , sorunsuz şeklide db link drop işlemi gerçekleşecektir.

Gerekli prosedürü aşaşğıdaki gibi oluşturabiliriz. DBA yetkisi olan yada SYS kullanıcısı ile oluşturulmalıdır. Prosedür , db link hangi şemada ise aynı şemada oluşturulmalıdır.

Aşağıdaki örnekte ahmet kullanıcısındaki ahmet_dblink isimli db linkin farklı bir kullanıcı ile drop edilebilmesi için gerekli prosedür oluşturulmuştur.

 

CREATE PROCEDURE ahmet.drop_db_link AS
BEGIN
EXECUTE IMMEDIATE 'drop database link ahmet_dblink';
END drop_db_link;

 

Aşağıdaki gibi gibi prosedürü çalıştıracak kullanıcıya execute yetkisi tanımlanmalıdır.

SQL> grant execute on ahmet.drop_db_link to KULLANICI;

İlgili kullanıcı ile aşağıdaki gibi prosedürü çalıştırdığımızda ilgili db link drop edilecektir.

SQL> exec ahmet.drop_db_link;

DB link sorgulandığında , drop edildiğini görebiliriz.

SQL> select * from dba_db_links where db_link='ahmet_dblink';

no rows selected

 

Loading

Bir yanıt yazın

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