Quick Search:
CODE
Oracle PL/SQL Code Library
JOBS
Find Or Post Oracle Jobs
FORUM
Oracle Discussion & Chat
 Oracle PL/SQL: Audit User Logins (User Login Trigger) Jump to:  
Category: >> Oracle PL/SQL >> Audit User Logins (User Login Trigger) Bookmark and Share

<< lastnext >>

Snippet Name: Audit User Logins (User Login Trigger)

Description: Audit user logins and enable SQL tracing for selected users.

Audit User Logins and start traces for selected users (User Login Trigger)

Also see:
» Add PSOUG Search to SQL Developer
» Converting Rows to Columns
» Database Links: CURRENT_USER
» Instant Test Database with DCBA
» Show info on current context
» Lookup Oracle error messages
» Display and release DBMS_LOCK locks
» Display locks and latches
» Show rollback segment stats
» Show active transactions
» List supported INIT.ORA parameters
» Display database SGA statistics
» Measure the Buffer Cache Hit Ratio
» List security related profile informat...
» Find users with deadly privileges
» Block TOAD and other tools
» Kill Session
» Extents
» DBA Users
» DBA Tablespaces
» DBA triggers
» DBA Sessions
» DBA Roles
» DBA Objects
» DBA Links
» DBA Jobs
» Job Queue
» DBA Free Space
» Data Files
» DBA Extents

Comment: (none)

Language: PL/SQL
Highlight Mode: PLSQL
Last Modified: March 02nd, 2009

CONNECT / AS SYSDBA
 
DROP TABLE user_login_audit;
 
CREATE TABLE user_login_audit (
     login_time     DATE,
     username        VARCHAR2(30),
     machine          VARCHAR2(30),
        command          VARCHAR2(128)
);
 
CREATE OR REPLACE TRIGGER user_login_trig
     AFTER LOGON ON scott.SCHEMA
DECLARE
  v_username sys.v_$session.username%TYPE;
  v_machine  sys.v_$session.machine%TYPE;
  v_command  sys.v_$session.command%TYPE;
BEGIN
  SELECT username, machine, command 
    INTO v_username, v_machine, v_command
    FROM sys.v_$session 
   WHERE audsid = USERENV('SESSIONID')
     AND audsid != 0  -- Don't Check SYS Connections
     AND ROWNUM = 1;  -- Parallel processes will have the same AUDSID's
 
  INSERT INTO sys.user_login_audit 
     VALUES (SYSDATE, v_username, v_machine, v_command);
 
  IF UPPER(v_machine) LIKE '%PC1%' THEN          -- Start SQL trace for users from PC1
     DBMS_SESSION.set_sql_trace(TRUE);
  END IF;
END;
/
SHOW ERRORS
 
CONNECT SCOTT/TIGER
 
CONNECT / AS SYSDBA
 
SELECT * FROM sys.user_login_audit;
 
 


Free
Oracle Magazine
Subscriptions
and Oracle White Papers


SQL University.net courses meet the most demanding needs of the business world for advanced education in a cost-effective manner. SQL University.net courses are available immediately for IT professionals and can be taken without disruption of your workplace schedule or processes.

Compared to traditional travel-based training, SQL University.net saves time and valuable corporate resources, allowing companies to do more with less. That's our mission, and that's what we deliver.

Click here to find out more
 
Home      :      Code Library      :      Sponsors      :      Privacy      :      Terms of Use      :      Contact Us 149 users online    © 2009 psoug.org

PSOUG LOGIN
Username: 
Password: 
Forgot your password?