onlypie86
This user hasn't shared any biographical information
Posts by onlypie86
Oracle Password Cracker (Checker)
Jan 30th
Definisi : Adalah script yang ditulis dalam PL/SQL digunakan untuk membantu DBA melakukan pengecekan weakness/strength user password.
Keuntungan :
- Mudah di jalankan di sqlplus
- Tidak menggunakan library
- Mudah dipelajari
- Dapat melakukan pengecekan terhadap weakness/strength user password yang complex dan panjang sekalipun dengan cepat.
- Karena script ini di jalankan di database, DBA dapat melakukan blocking hal yang tidak diinginkan dengan mendesign user prilivileges seminimal mungkin. Contohnya jika menggunakan privileges untuk CREATE SESSION, SELECT ON SYS.USER$ dan EXECUTE ON DBMS_OBFUSCATION_TOOLKIT.
Cara Kerja :
- Download cracker-v2.0.sql. Source dapat dicari di http://www.petefinnigan.com.
- Letakkan source di $ORACLE_HOME/BIN atau directory mana saja. Pastikan oracle dapat membaca source tersebut.
- Buka SQLPLUS di Oracle dan jalankan script seperti contoh di bawah ini :
SQL> @cracker-v2.0.sql cracker: Release 1.0.4.0.0 - Beta on Fri Jan 30 11:40:38 2009 Copyright (c) 2008 PeteFinnigan.com Limited. All rights reserved. T Username Password CR FL STA ======================================================= U "SYS" [ ] -- -- OP U "SYSTEM" [ ] -- -- OP U "OUTLN" [OUTLN ] DE CR EL R "GLOBAL_AQ_USER_ROLE [GL-EX {GLOBAL} ] GE CR OP U "DIP" [DIP ] DE CR EL U "DMSYS" [DMSYS ] DE CR EL U "DBSNMP" [ ] -- -- OP U "WMSYS" [WMSYS ] DE CR EL U "EXFSYS" [EXFSYS ] DE CR EL U More >
Oracle Cursor dan Ref Cursor
Jan 6th
Definisi Cursor Dalam blok PL/SQL tidak mengijinkan kita membuat query yang menghasilkan lebih dari satu baris untuk ditampung dalam sebuah variabel. Variabel semacam ini dinamakan cursor. Kegunaan
- Untuk menerima hasil query yang jumlah barisnya lebih dari 1 baris
- Memungkinkan untuk melakukan proses yang lebih kompleks untuk setiap record
Macam2 Cursor Cursor : cursor eksplisit dan cursor implisit
- Cursor Eksplisit : Cursor yang harus dideklarasikan terlebih dahulu sebelum digunakan
Contoh :
DECLARE CURSOR c_nama IS SELECT nama_petugas FROM pegawai ORDER BY nama_petugas ASC; v_nama PETUGAS.nama_petugas%TYPE; /**%TYPE agar tipe data variabel v_nama sama dengan kolom nama_petugas?*/ BEGIN FOR X IN c_nama LOOP DBMS_OUTPUT.PUT_LINE (c_nama%ROWCOUNT ||'Daftar Nama Petugas : ' || x.nama_petugas); END LOOP; END;
DECLARE id VARCHAR2(10); vnama_petugas PETUGAS.nama_petugas%TYPE; BEGIN id := 'PG-010'; //assigment VALUE SELECT nama_petugas INTO vnama_petugas FROM PETUGAS WHERE id_petugas = id; IF SQL%NOTFOUND THEN DBMS_OUTPUT.PUT_LINE('Data ditemukan'); ELSE DBMS_OUTPUT.PUT_LINE ('Nama petugas dengan id : ' || id || 'adalah ' || vnama_petugas); END IF; END;
Ref Cursor Kita dapat menggunakan ref cursor untuk mengembalikan nilai dalam bentuk recordset/cursor di store procedure. Ada 2 tipe ref cursor :
- Strong ref cursor : tipe data dan panjangnya harus diketahui saat compile
- Weak ref cursor : tipe data dan panjangnya tidak dibutuhkan saat compile
Contoh :
DECLARE TYPE r_cursor IS REF CURSOR; c_emp r_cursor; en emp%rowtype; BEGIN OPEN c_emp FOR SELECT * FROM emp; loop fetch c_emp INTO en; exit WHEN c_emp%notfound; dbms_output.put_line(c_emp%rowcount ||'. '||en.nama); END loop; close c_emp; More >