Başlangıç > Database, Oracle, PL/SQL > pl/sql de wrapped işlemi

pl/sql de wrapped işlemi


Merhaba

wrappedcodePl/Sql ile geliştirdiğimiz kodları dış dünya ile ortak kullanacağımız zaman güvenlik için bu programların kaynak kodlarını şifrelememiz gerekir. Bu durumda dbms_ddl paketini kullanırız ve bu paket altında bulunan wrap fonksiyonu ile şifrelediğimiz kodların şifreli halini alabiliriz ya da create_wrapped prosedürü ile sadece kaynak kodlarımız şifreleyebiliriz. Kaynak kodlarımızı nasıl şifreleyebileceğimize bir bakalım.

İşlemlerimizi test etmek için bir tane prosedür oluşturalım. Bu arada pl/sql de wrap işlemini tüm program kodları ( procedure, function, package) için uygulayabilirsiniz.

create or replace procedure WrapProcedure is
begin
  dbms_output.put_line(' Wrap işlemi testi için oluşturuldu. ');
end;

Örnek prosedürümüz hazır olduğuna göre şimdi wrap işlemine gecebiliriz. Öncelikle açık olan işlem yaptığımız kaynak kodnu şifreleyip bize geri veren wrap fonksiyonunu kullanalım.

declare
  vAcikKod    varchar2(4000);
  vSifreliKod varchar2(4000);
begin

  vAcikKod := 'create or replace procedure WrapProcedure is
begin
  dbms_output.put_line('' Wrap işlemi testi için oluşturuldu. '');
end;';

  dbms_output.put_line('----- Açık Kaynak Kodu -----');
  dbms_output.put_line(vAcikKod);

  vSifreliKod := dbms_ddl.wrap(ddl => vAcikKod);

  dbms_output.put_line('----- Şifrelenen Kaynak Kodu -----');
  dbms_output.put_line(vSifreliKod);
end;

İlgili kod bloğu çalıştığında bize aşağıdaki gibi sonuç verecektir.

----- Açık Kaynak Kodu -----
create or replace procedure WrapProcedure is
begin
  dbms_output.put_line(' Wrap işlemi testi için oluşturuldu. ');
end;
----- Şifrelenen Kaynak Kodu -----
create or replace procedure WrapProcedure wrapped
a000000
369
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
6a b2
TlG3NIKedgu5dqYBefCXEvq2gvYwg5nnm7+fMr2ywFznlvJW5xaXrtwuPmLyXKV0i8DAMv7S
hglpuFKbskr+KLK957KzHQYwLK4k6rIySyMCR4xOxwnHgpTyCW0MZZRlKJZyR16Fcj4Ae50a
oE0hSWPDrjVM6+zZPXKV7Pum1XfvIQ==

Görüldüğü gibi artık kodumuz şifrelenmiş durumda ve bu şekildeki kodu alıp başka bir database ortamında da derleyebiliriz. Şimdi bu işlem yerine direk kodumuzu şifreli olarak derleyip çalışır hale getiren create_wrapped prosedürü inceleyelim.

declare
  vAcikKod varchar2(4000);
begin

  vAcikKod := 'create or replace procedure WrapProcedure is
begin
  dbms_output.put_line('' Wrap işlemi testi için oluşturuldu. '');
end;';

  dbms_output.put_line('----- Açık Kaynak Kodu -----');
  dbms_output.put_line(vAcikKod);

  dbms_ddl.create_wrapped(ddl => vAcikKod);

end;

Bu kod çalıştığında database üzerinde ilgili kod bloğunu şifreli olarak yaratır ve kullanıma hazır duruma getir. Şimdi bu kod çalışmasından sonra WrapProcedure isimli prosedürümüzn kaynak koduna bakalım.
Kaynak kodu görüntülediğimizde karşımıza aşağıdaki gibi bir sonuç çıkacaktır.

create or replace procedure WrapProcedure wrapped
a000000
369
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
6a b2
TlG3NIKedgu5dqYBefCXEvq2gvYwg5nnm7+fMr2ywFznlvJW5xaXrtwuPmLyXKV0i8DAMv7S
hglpuFKbskr+KLK957KzHQYwLK4k6rIySyMCR4xOxwnHgpTyCW0MZZRlKJZyR16Fcj4Ae50a
oE0hSWPDrjVM6+zZPXKV7Pum1XfvIQ==

Her iki yöntem ile de kaynak kodlarımızı şifreledik. Bu işlemi neden kullanırız sorusuna gelirsek. Test ortamında yaptığımız geliştirmeleri canlı ortama aldığımızda kodları şifrelemek, entegrasyon gibi dış ortam ile iletişim durumlarında güvenlik sebebi ile kodları şifrelemek ya da yabancı ellerin kodlara müdahe etmesini önlemek için.
Kolay gelsin.

Reklamlar
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: