Çarşamba , 17 Eylül 2014
Anasayfa / MAKALELER / Veri Tabanı / Oracle WRAP Utility

Oracle WRAP Utility

Oracle WRAP Utility

Bu yazımda sizelere “WRAP” aracının ne olduğunu? PL/SQL kodlarımızı bu araç ile nasıl gizleyebileceğimizi anlatacağım. Oracle, yazdığı paketlerin (internal packages olarak bilinir) içeriğini wrap ile gizlemektedir. Mesela DBMS ile başlayan DBMS_JOB, DBMS_SCHEDULE, v.s paketlerin body kısmını görmek istediğimizde aşağıdaki gibi gizlenmiş olarak görmekteyiz.

CREATE OR REPLACE PACKAGE BODY SYS.dbms_job wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
21a3 b16
lo1iuGKabyEptQ7AYEgtdK75BmEwg5Wr3l4FYKAPamS0YVj3PRYchH0hld1fVjvwrMuAW69P
IRpr66AU9anSde7G/s0SEqGnRq1lMtPIv5oS+LkLjWMsdviZ/8mTU+AsGapF4qqdz3JR4PZt
fzqcP2JOVo84jcefz+RAsEnvMxsTLRYBAxaBTlykY2wPpW6+XqZvj/lmCFhU18E/3TEWpRQb
5qZckusO2rpG787GwuV+s2zCeeXxFg4vs4uaQo05AYljfhxjOKSSbLg3TUk/VlckCE6PhXK/
...
/

Bizde Oracle kurulumu ile gelen “WRAP” aracını kullanarak yazdığımız procedure, function veya paketleri gizleyebiliriz. Oracle 10g R2 ile birlikte DBMS_DDL paketi yardımı ile de dinamik kod gizleme işlemi yapabiliriz. WRAP komutu işletim sistemi üzerinde çalışan bir araçtır. Kullanım prototipi aşağıdaki gibidir.

wrap iname=input_file  oname=output_file

Burada iname, bizim içeriğini gizleyeceğimiz PL/SQL kod bloğudur. Oname ise gizlenmiş kod bloğunun kaydedileceği dosya adıdır. Oname belirtmeyebiliriz. Bu durumda source kodun bulunduğu dosya adı(input_file) “.plb” uzantısıyla kaydedilir. Aşağıdaki gibi bir prosedürümüz olsun. Ve “WRAP” aracını kullanarak içeriğini gizleyelim.

CREATE OR REPLACE PROCEDURE talip_test AS
BEGIN
  DBMS_OUTPUT.PUT_LINE('Test proseduru');
END;
/

Yukarıdaki prosedürü talip_test.sql adıyla işletim sistemi üzerine kayıt edelim. “WRAP” ile içeriğini aşağıdaki gibi gizleyelim.

$ wrap iname= talip_test.sql
PL/SQL Wrapper: Release 11.2.0.1.0- Production on Thu Mar 10 13:50:13 2011
Copyright (c) 1993, 2009, Oracle.  All rights reserved.
Processing talip_test.sql to talip_test.plb

talip_test.plb isimli gizlenmiş kod bloğumuz oluştu. Bir editör ile baktığımızda içeriği aşağıdaki gibidir.

CREATE OR REPLACE PROCEDURE talip_test wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
4d 89
BnIWMXkTu2kwu8RXi1DM+jgMrZUwg5nnm7+fMr2ywFwWoUf6VuOWoWLRzLh0i8DAMv7Shglp
uFKbskr+KLK957KzHQYwLK4k6rKBL8jlrFHkBneJJVEJMi720eokH/Y5pqcyH4I=
/

Gizlenmiş yukarıdaki kodu veritabanına direk deploy edebiliriz. Deploy ettikten sonrada problemsiz kodumuzu aşağıdaki gibi çalıştırabiliriz.

SQL>exec talip_test;

Talip Hakan ÖZTÜRK

Talip Hakan Ozturk

Oracle ACE, 10g/11g OCP, Oracle Blogger, Author, Senior Oracle DBA at Bank Asya, Internal Oracle Trainer for Bank Asya Akademi
Powered by Starbox

Hakkında Talip Hakan Ozturk

Oracle ACE, 10g/11g OCP, Oracle Blogger, Author, Senior Oracle DBA at Bank Asya, Internal Oracle Trainer for Bank Asya Akademi

Cevapla

E-posta adresiniz yayınlanmayacak. Required fields are marked *

*


Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>