26 lines
791 B
SQL
26 lines
791 B
SQL
-- GRANT SELECT ON v_$process TO system;
|
|
-- GRANT SELECT ON v_$session TO system;
|
|
|
|
|
|
-- Put OS PID into v$session.client_identifier so that it'd get recorded in ASH
|
|
-- This works with dedicated sessions. With Oracle shared servers (MTS)
|
|
-- the OS PID that was used during logon will be recorded (not necessarily the
|
|
-- process ID that gets used later)
|
|
|
|
-- If you don't want to overwrite the client_identifier, you could just append
|
|
-- the ospid= string into the end of current client id.
|
|
|
|
CREATE OR REPLACE TRIGGER logon_trigger_ospid
|
|
AFTER LOGON ON DATABASE
|
|
DECLARE
|
|
ospid NUMBER;
|
|
BEGIN
|
|
SELECT spid INTO ospid
|
|
FROM v$process
|
|
WHERE addr = (SELECT paddr FROM v$session WHERE sid = USERENV('sid'));
|
|
|
|
DBMS_SESSION.SET_IDENTIFIER('ospid='||TRIM(TO_CHAR(ospid)));
|
|
END;
|
|
/
|
|
|