Berlindung di belakang SYSDBA :D
Beberapa waktu yang lalu sy pernah menulis bagaimana cara Menembus pertahanan database Firebird yang diproteksi menggunakan SYSDBA sebagai tamengnya :D, nah biar imbang sekarang kita akan bahas bagaimana langkah-langkah pembuatannya.
Tool yang digunakan juga masih sama yaitu IBExpert personal edition (free), oke langsung saja kita mulai :).
1. Persiapkan database yang akan diproteksi
Untuk contoh disini sy menggunakan database dg nama db_sample.fdb yang di tempatkan di drive C:\
Berikut langkah-langkah untuk mendaftarkan database firebird ke IBExpert.
a. Klik menu Database -> Register Database
Kemudian login menggunakan user default Firebird yaitu SYSDBA dengan password masterkey.
Untuk versi server tinggal disesuaikan dengan versi Firebird yang terinstall.
b. Aktifkan database sample dengan cara klik ganda node DB SAMPLE
2. Buat user baru yang akan kita jadikan sebagai pengganti SYSDBA, misal K4M4R82.
User baru ini akan kita berikan hak akses untuk menghakses semua tabel dan obej-objek lain yang diperlukan.
Berikut langkah-langkahnya :
a. Klik menu Tools -> User Management, kemudian login menggunakan user SYSDBA dan password masterkey.
b. Tambahkan user baru dengan mengklik tombol Add
Kita akan menambahkan user baru dengan nama K4M4R82 dan password rahasia.
Jika berhasil akan terlihat seperti berikut :
3. Mengatur hak akses user
IBExpert mempunyai fitur untuk mengatur hak akses user, sayangnya fitur ini tidak aktif untuk versi personal edition (free), jadi kita akan mencoba solusi lain yaitu dengan membuat stored procedure dengan nama GRANT_USER.
Berikut scriptnya :
SET TERM ^ ; CREATE OR ALTER PROCEDURE GRANT_USER ( user_name varchar(10)) as declare variable table_name varchar(50); BEGIN -- reset hak akses DELETE FROM rdb$user_privileges WHERE rdb$user = :user_name AND rdb$privilege IN ('I', 'U', 'D', 'S') AND rdb$user_type = 8 AND rdb$object_type = 0; FOR -- ambil informasi nama-nama tabel SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 INTO :table_name DO BEGIN -- INSERT INSERT INTO rdb$user_privileges (rdb$user, rdb$grantor, rdb$privilege, rdb$grant_option, rdb$relation_name, rdb$user_type, rdb$object_type) VALUES (:user_name, 'SYSDBA', 'I', 1, :table_name, 8, 0); -- UPDATE INSERT INTO rdb$user_privileges (rdb$user, rdb$grantor, rdb$privilege, rdb$grant_option, rdb$relation_name, rdb$user_type, rdb$object_type) VALUES (:user_name, 'SYSDBA', 'U', 1, :table_name, 8, 0); -- DELETE INSERT INTO rdb$user_privileges (rdb$user, rdb$grantor, rdb$privilege, rdb$grant_option, rdb$relation_name, rdb$user_type, rdb$object_type) VALUES (:user_name, 'SYSDBA', 'D', 1, :table_name, 8, 0); -- SELECT INSERT INTO rdb$user_privileges (rdb$user, rdb$grantor, rdb$privilege, rdb$grant_option, rdb$relation_name, rdb$user_type, rdb$object_type) VALUES (:user_name, 'SYSDBA', 'S', 1, :table_name, 8, 0); END INSERT INTO rdb$user_privileges (rdb$user, rdb$grantor, rdb$privilege, rdb$grant_option, rdb$relation_name, rdb$user_type, rdb$object_type) VALUES (:user_name, 'SYSDBA', 'S', 1, 'RDB$RELATIONS', 8, 0); END ^ SET TERM ; ^
Untuk menjalankan script diatas kita akan menggunakan editor Script Executive (CTRL+F12)
4. Eksekusi stored procedure grant_user
Setelah langkah sebelumnya selesai kita tinggal panggil stored procedure grant_user seperti berikut :
EXECUTE PROCEDURE grant_user('K4M4R82')
5. Menambahkan role ‘SYSDBA’
Informasi role tersimpan di dalam tabel sistem yang bernama rdb$roles, sehingga untuk menambahkannya kita bisa menggunakan perintah INSERT yang sudah biasa kita gunakan.
INSERT INTO rdb$roles (rdb$role_name, rdb$owner_name, rdb$system_flag) VALUES ('SYSDBA', 'K4M4R82', 0)
6. Disconnect dari database sample
7. Aktifkan kembali database sample dengan cara klik ganda node DB SAMPLE
Jika muncul peringatan berikut
berarti database kita sudah terlindungi oleh SYSDBA 🙂
8. Terakhir kita coba login ulang dengan menggunakan user K4M4R82
Selamat MENCOBA 🙂
mksh mas bro..dicoba dulu
Oke om sipp 🙂
bang ada contoh program absensi ga dengan menggunakan VB dan data bases dbms MySql
Ada sih punya kantor, kayaxnya harus via proposal dulu baru dpt contohnya 😀
mas bro, boleh tanya ga…apa ada cara supaya bisa baca db sql lewat firebird ib expert??
saya menggunakan sql server 2005, apakah bisa di baca database2 tersebut yang ada di sql lewat ibexpert??
tolong bantuannya mas bro kalo ada caranya…
Klo untuk sql server sudah ada tool khususnya yaitu SQL Server Management Studio
bang coba dong kasih tutor dengan menggunakan tools lain, misal Firebird maestro, flame robin, atau yg lainnya, sbb g tau knp di laptop sy ibexpert-nya g bisa
ga bisanya gmn om??dlu laptop sy juga da kasus, jadi ibexpt running normal tapi gak bisa buka database,,.ternyata caranya untuk server jgn diisi localhost, tapi diisi remote kemudian servername diisi 127.0.0.1 (sama aja dgn localhost),,dan ternyata bisa
Om sy dah coba tutor diatas,, tapi procedure2 yang telah sy buat sebelumnya kok g bisa dijalankan ya??
Ya alasannya karna user yg digunakan untuk menggantikan user SYSDBA bukan user ADMIN, sehingga harus diberi hak akses secara manual untuk mengakses store procedurenya
gmn script utk buat akses store procedurex om?? Dah coba utak atik masih ndak bisa..
Om edit script store procedure GRANT_USER diatas, trus tambahkan kode berikut :
mantap om,, oiya saat q pasang dikomputer lain kok ndak bisa knp ya om?? katax username n password ndak valid..
Yupss sama kaya Mas Agung, db di pindah di kompi lain kemudian di open dengan user & password yg telah di rubah dari komputer sebelumnya tidak bisa. User & pass tidak valid.
adakah solusi biar bisa di buka di kompi yang lain?
User dan Password database firebird tersimpan di file security2.fdb, jadi cara termudahnya adalah dg menimpa file security2.fdb yg ada di komputer develop ke komputer klien
File security2.fdb tersimpan di folder instalasi firebird.
iya sementara sudah saya coba, dari coding di atas sy eksekusi ke komputer tujuan, atau dengan cara file security2.fdb dari komputer develop di timpakan ke komputer tujuan. Terimakasih Om Admin .. Sukses buat Om Admin .. 😀
Oke om sama2x 🙂
Pak saya pake cara diatas gak bisa, sysdba gak kebuka, ini linknya
http://www.4shared.com/rar/777eLN_f/xpressgl.html
bagi-bagi ilmunya ya pak, makasih ….
Cara di atas ? Ya jelas enggak nyambung om, seharusnya om pake cara yang di sini.
Sy udah coba untuk membuka database xpressgl.fdbnya, hasilnya bisa dilihat disini.
hehe mantep pak, makasih
Oke om, senang bisa membantu 🙂
Passssa mannnntap!!!! tolong diperbanyak tutornya firebird dng vb net. butuh referensi belajar yang banyak…trims tutuornya om.
Sama2x om, senang bisa membantu 🙂
om numpang nanya om dari newby…..knapa ya pas wktu run di delphi pasti muncul pesan iebclient error…..database not assigned….saya pake ibexpert dan firebird makasih atas jawabannya….
Bagaimana cara mengembalikan security seperti semula? apa harus menghapus role SYSDBA?
Iya om
mau tanya om, kasusnya gini om, ngepatch program dan databasenya (fdb) nya sama pihak lain, bagaimana caranya kita buat database yang baru ya om, dan apa perlu juga firebirdnya di upgrade dan gimana caranya sebelumnya program ini pake 1.5, makasih ya om..