26 lines
791 B
MySQL
26 lines
791 B
MySQL
|
|
-- 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;
|
||
|
|
/
|
||
|
|
|