Dh,
P' Yulius, sudah sy coba, ternyata bisa menggunakan trigger saran dari P' Yulius "DBMS_SESSION. SET_ROLE( 'X,Y');" Terima kasih atas bantuannya P' Yulius. Case Close :) ________________________________ From: Yulius Wibowo <[email protected]> To: [email protected] Sent: Wednesday, April 1, 2009 10:14:56 Subject: [indo-oracle] Re: Batasin Login Masuk Oracle Gunakan multiple role dengan separator koma, spt berikut: DBMS_SESSION. SET_ROLE( 'X,Y'); bw --- In indo-oracle@ yahoogroups. com, Novian <ian_a...@.. .> wrote: > > Dh, > > Sy sudah mencoba memakai batasan melalui role seperti cara yg diinformasikan > oleh Bpk Rusef Slamet, sudah berhasil. :) > > Tetapi kendalanya per user hanya bisa 1 role saja, jika Role user yg dimiliki > oleh user lebih dari 1 role, Trigger di pre-form nya bagaimana?, jika > menggunakan trigger "dbms_session. set_role( 'x');" khusus hanya 1 role saja, > jika lebih dari 1 role tidak bisa. (misalnya role x --> grant select table A,B > role y --> grant > select table C,D > lalu di form terdapat table > A,B,C,D, > jika menggunakan trigger di > pre-form : > dbms_session. set_role( 'x'); > dbms_session. set_role( 'y); > saat dicompile muncul error > table C,D must be declared) > > Dimohon bantuannya, terima kasih sebelumnya. > > > > > ____________ _________ _________ __ > From: rusef slamet <rusefslamet@ ...> > To: indo-oracle@ yahoogroups. com > Sent: Wednesday, March 25, 2009 6:24:34 > Subject: Re: [indo-oracle] Batasin Login Masuk Oracle > > > Coba langkah ringkas berikut: > 1. set role untuk user login ke oracle > create role app_login; > grant create session, alter session to app_login; > grant app_login to test; > > 2. set role untuk mengakses data yang dapat diakses user > create role x; > grant select, insert, update, delete on table_yang_bisa_ diakses to x; > grant x to test; > > 3. Non aktifkan semua role untuk mengakses data dan hanya role untuk login > alter user test default role app_login; > > 4. di form pada trigger pre-form tambahkan statement berikut yang fungsinya > untuk mengaktifkan role x pada user test untuk session tersebut. > > dbms_session. set_role( 'x'); > > Smoga membantu. > ~roes~ > > ____________ _________ _________ __ > From: Novian <ian_a...@yahoo. com> > To: indo-oracle@ yahoogroups. com > Sent: Wednesday, March 18, 2009 4:35:26 PM > Subject: Re: [indo-oracle] Batasin Login Masuk Oracle > > 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 <a...@alasindah. com> > To: indo-oracle@ yahoogroups. com > 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] > > [Non-text portions of this message have been removed] > > > > > > Get your new Email address! > Grab the Email name you've always wanted before someone else does! > http://mail. promotions. yahoo.com/ newdomains/ aa/ > > [Non-text portions of this message have been removed] > Get your preferred Email name! Now you can @ymail.com and @rocketmail.com. http://mail.promotions.yahoo.com/newdomains/aa/ [Non-text portions of this message have been removed]

