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 <[email protected]>
To: [email protected]
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]