Sabtu, 05 Mei 2012

Hak Akses Mysql Delphi

0

Apabila kita membuat aplikasi yang disitu terdapat hak akses untuk masing-masing user, maka kita bisa membuatnya dengan berbagai macam cara. Bisa dengan membuat tabel privilage untuk masing-masing form, bisa menggunakan file yang ditaruh diluar *.exe dan kita panggil saat run mode, bisa kita masukan privilage ke dalam coding program secara langsung atau kita memanfaatkan hak akses dan privilage yang terdapat pada MySQL Server.

OK langsung saja ke TeKaPe.....
Pertama-tama tentunya kita harus mempunyai database terlebih dahulu, misalkan kita membuat tabel mhs : NIM, Nama pada DB test (menggunakan AppServ).



Kemudian kita bisa membuat hak akses untuk user yang akan memakai DB test tersebut.



Misalkan admin dia mempunyai hak grand all, siA hanya dikasih privilage untuk select saja, siB dikasih privilage untuk select dan insert saja dst...



kita juga bisa membuat privilage per-database dan per-table atas user yang kita buat sebelumnya..



OK pembuatan hak akses telah selesai, sekarang kita beralih ke delphi. disini saya menggunakan komponen MyDAC untuk melakukan koneksi ke MySQL.
Susun komponen seperti gambar dibawah.



Pada projek delphi tersebut terdapat 2 buah proses, pertama adalah proses untuk koneksi ke DB dan ke proses kedua adalah proses insert data, nanti kita bisa membandingkan apabila kita masuk sebagai user yang berbeda apa yang akan terjadi.

Proses koneksi DB
db.Connected := false;
db.DatabaseName := edit1.Text;
db.UserName := edit2.Text;
db.UserPassword := edit3.Text;
db.Host:= edit4.Text;
db.Port := strtoint(edit5.Text);
db.Connected := true;

Proses Insert data
try
q.SQL.Clear;
q.SQL.Add('insert into mhs values(:a, :s)');
q.ParamByName('a').Value := edit6.Text;
q.ParamByName('s').Value := edit7.Text;
q.ExecSQL;
except
showmessage('Privilage tidak mengijinkan');
end;

q.SQL.Clear;
q.SQL.Add('select * from mhs');
q.Active := true;

apabila kita masuk sebgai root maka kita bisa melakukan input data, tetapi apabila kita masuk sebgai karyawan maka kita tidak bisa melakukan input data. try... exception... berguna apabila proses input tidak bisa maka peringatan privilage tidak mengijinkan yang akan muncul.