Melihat informasi session bisa dilakukan dengan query ke VIEW V$SESSION. Namun tidak semua user bisa query ke VIEW ini. Yang bisa hanya user-user yang punya privilege berikut :
- DBA (sys, system, dan lain-lain)
- select on v_$session
- select any dictionary
Meskipun untuk melihat informasi session kita sendiri, kalau tidak punya salah satu dari ketiga privilege di atas, ya tetep tidak bisa query ke VIEW v$session.
Untuk bisa melihat informasi session sendiri, selain melalui VIEW v$session, Oracle menyediakan tool/function SYS_CONTEXT.
Formatnya adalah SYS_CONTEXT( ‘USERENV’ , ‘PARAMETER’)
Untuk melihat informasi session yang kita kehendaki, kita tinggal memanggil function SYS_CONTEXT dan memasukkan parameter yang sesuai.
Contoh:
Melalui SQLPlus, melihat informasi hostname dan osuser dari mana current session berasal:
SQL> col "Os User" for a20
SQL> col "Hostname" for a35
SQL> select sys_context( 'USERENV','OS_USER') "Os User", sys_context( 'USERENV','HOST') "Hostname" from dual;
Os User Hostname -------------------- ---------------------------------- rohmadp INTRANET\LOCALUSER_ROHMADP
Contoh kalau melalui PL/SQL
set serveroutput on
DECLARE
v_hostname varchar2(20);
v_os_user varchar2(35);
BEGIN
v_os_user:=sys_context('USERENV','OS_USER');
v_hostname:=sys_context('USERENV','HOST');
dbms_output.put_line('Os User = '||v_os_user);
dbms_output.put_line('Hostname = '||v_hostname);
END;
/
Os User = rohmadp Hostname = INTRANET\LOCALUSER_ROHMADP
***
Informasi apa saja yang bisa diambil dari SYS_CONTEXT?
Berikut ini beberapa contoh informasi yang bisa kita ambil. Lebih lengkapnya silahkan lihat referensi.
PARAMETER INFORMASI SESSION ================================================================= OS_USER User OS dari mana client melakukan koneksi HOST Komputer/mesin dari mana client melakukan koneksi CURRENT_USER User database yang dipakai untuk koneksi DB_NAME Nama database yang dikoneksi Dan lain-lain Silahkan lihat Referensi
Referensi
Oracle® Database SQL Reference 10g Release 2 (10.2) – SYS_CONTEXT
Oracle9i SQL Reference Release 2 (9.2) – SYS_CONTEXT
pak rohmad..
mau tanya ? setelah melakukan setingan di atas berupa script
SQL> col “Os User” for a20
SQL> col “Hostname” for a35
SQL> select sys_context( ‘USERENV’,’OS_USER’) “Os User”, sys_context( ‘USERENV’,’HOST’) “Hostname” from dual;
selanjut nya untuk melihat hasil log sys_context dengan perintah apa pak, atau bisa di lihat di mana? terima kasih