Yang membaca adalah aplikasinya, jadi modifikasi dilakukan di logicnya aplikasi. User yg login (di field user login) biasanya disimpan oleh aplikasi. Misalnya aplikasi pakek Form Developer, bisa disimpan sebagai parameter, mis. Par_User. Atau aplikasi pakek Java, bisa disimpan di method setField-nya, mis. setUser(username). Ketika dikirim statement DML ke database, maka informasi ini juga dikirimkan. Seperti contoh sebelumnya, jika dikirim perintah statement insert ke table my_table, maka statementnya menjadi: -- di Form INSERT INTO my_table (col_id,col_name,user_app) VALUES (:Block.Col_Id,:Block.Col_Name,:PARAMETER.Par_User); -- di Java INSERT INTO my_table (col_id,col_name,user_app) VALUES (getColId(),getColName(),getUser());
rgds, AH Andes Febrian wrote: > > pak awal, > > menambahkan satu kolom di table (pemicu trigger) yg berisi informasi user > aplikasi. >> misal saya mengaudit table Data Personalia dan table ini > sudah > jadi dan sudah ada isinya, maka saya harus menambahkan kolom untuk user > aplikasi. > > tp pertanyaan saya adalah, bagaimana kah saya tau user aplikasi yg mana yg > merubah data pada table Data Personalia tersebut dan memasukkan nya ke > dalam > kolom user aplikasi ? > > saya masih kurang mengerti maksudnya, mohon pencerahannya. terima kasih. > > 2008/8/11 Awaluddin Hamid <[EMAIL PROTECTED] > <mailto:awal%40alasindah.com>> > > > Harus dipisahkan dulu dengan jelas, mana user aplikasi dan mana user > > database. > > User aplikasi tentu saja tidak dikenali di database, jadi mis. ada > > statement > > CREATE TABLE audit_table ( > > dml_oper VARCHAR2(8), > > changed_by VARCHAR2(20) DEFAULT USER); > > maka user yg dimaksud adalah user database. > > > > Karena koneksi aplikasi ke database menggunakan user A, maka siapapun yg > > koneksi via aplikasi akan dianggap sebagai user A. > > Jika demikian, bagaimana cara merecord user aplikasi di trigger? > > Salah satu cara (jika object database masih bisa dimodifikasi) adalah > > dengan menambah satu kolom di table (pemicu trigger) yg berisi informasi > > user aplikasi. Kolom ini yg akan digunakan untuk mengisi kolom user di > > table audit. > > > > Mis. ada sebuah table: > > SQL>DESC my_table > > Name Null? Type > > ----------------------------------------- -------- ------------ > > col_id NOT NULL NUMBER > > col_name VARCHAR2(30) > > user_app VARCHAR2(20) -- > > tambahkan kolom ini > > > > Dengan trigger: > > CREATE OR REPLACE TRIGGER audit_trig > > AFTER UPDATE OR DELETE OR INSERT > > ON my_table > > REFERENCING NEW AS NEW OLD AS OLD > > FOR EACH ROW > > BEGIN > > IF INSERTING THEN > > INSERT INTO audit_table('INSERT',:NEW.user_app); > > ... > > .. > > END IF; > > END; > > / > > > > rgds, > > AH > > > > > > Andes Febrian wrote: > > > > > > Dear gurus, > > > > > > saya punya application server 10Release 3 (OC4J server) mengkases > > database > > > A. Aplikasi OC4J ini bila mengkases database menggunakan satu > > user(schema) > > > yaitu user(schema) A. > > > kemudian bila user mau mengakses aplikasi OC4J, user masukkan username > > dan > > > password mereka di aplikasi tersebut. ada 100 user dgn IP yg > berbeda2 dan > > > login ke aplikasi dgn username masing2. seperti, sinta, santi, > tuti dll. > > > > > > yg saya mau tanyakan, bila saya mengaudit table B pada database A dgn > > > trigger, maka ketika aplikasi select data atau mengupdate atau delete > > data > > > di database, yg terlihat adalah user(schema) A(si aplikasi OC4J). tp > > user2 > > > yg login ke aplikasi dgn user masing2 tidak dibaca oleh database. > > > > > > bagaimana kah supaya database tetap membaca user sinta, santi, > tuti dll > > > bukan user(schema) A ? > > > > > > maaf bila kurang jelas maksud saya, saya kasih gambaran seperti ini : > > > tuti ----------> > > > sinta ----------> (connect dgn schema A) > > > santi ----------> OC4J -----------> DATABASE A > > > doni ----------> (database hanya membaca satu schema, yaitu > > > schema A) > > > joko ----------> > > > (login dgn > > > username > > > masing2) > > > > > > mohon pencerahannya, terima kasih. > > > > > > -- > > > Cheers, > > > ^_^ Andes ^_^ > > > > > > [Non-text portions of this message have been removed] > > > > > > > > > > > > -- > Cheers, > ^_^ Andes ^_^ > > [Non-text portions of this message have been removed] > >

