Dh, Kendala jika memakai trigger AFTER LOGON, user TEST harus berhasil login terlebih dahulu melalui SQL Plus, baru column module di v$session muncul bahwa user TEST tersebut memakai SQL*Plus, jika user TEST tidak berhasil login, maka column module di v$session null.
Sebaiknya memakai trigger apa? agar user TEST jika login melalui SQL*Plus tidak bisa masuk? Bisa atau tidak jika user TEST dapat berhasil login melalui SQL*Plus tapi tidak dapat select,update,insert dan delete. Tetapi jika login melalui form dapat select,update,insert, dan delete & login di report dapat akses select. Terima kasih. ________________________________ From: Awaluddin Hamid <[email protected]> To: [email protected] Sent: Wednesday, March 18, 2009 0:41:55 Subject: Re: [indo-oracle] Batasin Login Masuk Oracle Renga Haka wrote: > > Bagaimana kalau pake Application Users? > > Pernah juga liat yang namanya profile untuk user. Tapi sepertinya > tidak untuk membatasi akses dari program apa... > > Mungkin bisa buat procedure yang ngebaca V$SESSION. Kemudian hasilnya > dijadikan dasar untuk kill session yang gak boleh tersebut... Prosedur > disubmit sebagai jobs... ehmm.. Agak berbahaya & mesti eksplorasi dulu.. > > Salam.. > > --- On Tue, 3/17/09, Novian <ian_a...@yahoo. com > <mailto:ian_ az04%40yahoo. com>> wrote: > > Dh, > > Klo mau batasin login masuk Oracle pasang triggernya dimana ya? > > Misalnya username = 'TEST' > > klo login lewat SQL*Plus username TEST ngga bisa masuk, > > tapi klo login lewat Form ato Report username TEST bisa login. > > Dimohon bantuannya > > Thanks. > Bisa gunakan trigger AFTER LOGON di database. Tetapi memang harus ekstra hati-hati dalam penggunaannya. $ sqlplus / as sysdba SQL> CREATE OR REPLACE TRIGGER validasi_trigger 2 AFTER LOGON 3 ON DATABASE 4 DECLARE 5 n NUMBER; 6 BEGIN 7 -- perhatikan conditional if disinikarena 8 -- semua user mungkin gak bisa login 9 IF user = 'TEST' THEN 10 FOR i IN ( 11 SELECT program FROM v$session where username = user) LOOP 12 IF INSTR(LOWER( i.program) ,'sqlplus' ) > 0 THEN 13 -- error-kan trigger 14 n := 1/0; 15 END IF; 16 END LOOP; 17 END IF; 18 EXCEPTION 19 WHEN ZERO_DIVIDE THEN 20 RAISE_APPLICATION_ ERROR(-20001, 'Anda tidak boleh login lewat sini'); 21 WHEN OTHERS THEN 22 RAISE_APPLICATION_ ERROR(-20001, 'Trigger yg error, bukan anda'); 23 END validasi_trigger; 24 / Trigger created. CMIIW, AH New Email addresses available on Yahoo! Get the Email name you've always wanted on the new @ymail and @rocketmail. Hurry before someone else does! http://mail.promotions.yahoo.com/newdomains/aa/ [Non-text portions of this message have been removed]

