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&#39;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]

Kirim email ke