Melihat Informasi Current Session

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 :

  1. DBA (sys, system, dan lain-lain)
  2. select on v_$session
  3. 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

This entry was posted in Administration and tagged , , . Bookmark the permalink.

One Response to Melihat Informasi Current Session

  1. victor says:

    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

Leave a Reply

Your email address will not be published. Required fields are marked *