Skip to Main Content

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Dario.

Asked: February 09, 2019 - 10:48 am UTC

Last updated: February 12, 2019 - 2:12 am UTC

Version: 12.2

Viewed 10K+ times! This question is

You Asked

Our solution exposes a Stored Procedure to a DB user having the right grants to execute it.
We need to know the date and time for each execution for that stored procedure.
We are in production, so we can not instrument the running code of the stored procedure.


thanks

and Connor said...

An audit can do that for you

SQL> create or replace
  2  procedure my_proc is
  3  begin
  4    null;
  5  end;
  6  /

Procedure created.

SQL>
SQL>
SQL> audit execute on my_proc;

Audit succeeded.

SQL> exec my_proc

PL/SQL procedure successfully completed.

SQL> exec my_proc

PL/SQL procedure successfully completed.

SQL> exec my_proc

PL/SQL procedure successfully completed.

SQL> select * from dba_audit_trail
  2  @pr
==============================
OS_USERNAME                   : PC\connor
USERNAME                      : SCOTT
USERHOST                      : WORKGROUP\PC
TERMINAL                      : PC
TIMESTAMP                     : 12-FEB-19
OWNER                         : SCOTT
OBJ_NAME                      : MY_PROC
ACTION                        : 116
ACTION_NAME                   : EXECUTE PROCEDURE
NEW_OWNER                     :
NEW_NAME                      :
OBJ_PRIVILEGE                 :
SYS_PRIVILEGE                 :
ADMIN_OPTION                  :
GRANTEE                       :
AUDIT_OPTION                  :
SES_ACTIONS                   :
LOGOFF_TIME                   :
LOGOFF_LREAD                  :
LOGOFF_PREAD                  :
LOGOFF_LWRITE                 :
LOGOFF_DLOCK                  :
COMMENT_TEXT                  :
SESSIONID                     : 53460109
ENTRYID                       : 2
STATEMENTID                   : 30
RETURNCODE                    : 0
PRIV_USED                     :
CLIENT_ID                     :
ECONTEXT_ID                   :
SESSION_CPU                   :
EXTENDED_TIMESTAMP            : 12-FEB-19 10.09.32.758000 AM +08:00
PROXY_SESSIONID               :
GLOBAL_UID                    :
INSTANCE_NUMBER               : 0
OS_PROCESS                    : 4840:30944
TRANSACTIONID                 :
SCN                           : 143830020
SQL_BIND                      :
SQL_TEXT                      :
OBJ_EDITION_NAME              :
DBID                          : 473612098
RLS_INFO                      :
CURRENT_USER                  : SCOTT
==============================
OS_USERNAME                   : PC\connor
USERNAME                      : SCOTT
USERHOST                      : WORKGROUP\PC
TERMINAL                      : PC
TIMESTAMP                     : 12-FEB-19
OWNER                         : SCOTT
OBJ_NAME                      : MY_PROC
ACTION                        : 116
ACTION_NAME                   : EXECUTE PROCEDURE
NEW_OWNER                     :
NEW_NAME                      :
OBJ_PRIVILEGE                 :
SYS_PRIVILEGE                 :
ADMIN_OPTION                  :
GRANTEE                       :
AUDIT_OPTION                  :
SES_ACTIONS                   :
LOGOFF_TIME                   :
LOGOFF_LREAD                  :
LOGOFF_PREAD                  :
LOGOFF_LWRITE                 :
LOGOFF_DLOCK                  :
COMMENT_TEXT                  :
SESSIONID                     : 53460109
ENTRYID                       : 3
STATEMENTID                   : 31
RETURNCODE                    : 0
PRIV_USED                     :
CLIENT_ID                     :
ECONTEXT_ID                   :
SESSION_CPU                   :
EXTENDED_TIMESTAMP            : 12-FEB-19 10.09.33.626000 AM +08:00
PROXY_SESSIONID               :
GLOBAL_UID                    :
INSTANCE_NUMBER               : 0
OS_PROCESS                    : 4840:30944
TRANSACTIONID                 :
SCN                           : 143830043
SQL_BIND                      :
SQL_TEXT                      :
OBJ_EDITION_NAME              :
DBID                          : 473612098
RLS_INFO                      :
CURRENT_USER                  : SCOTT
==============================
OS_USERNAME                   : PC\connor
USERNAME                      : SCOTT
USERHOST                      : WORKGROUP\PC
TERMINAL                      : PC
TIMESTAMP                     : 12-FEB-19
OWNER                         : SCOTT
OBJ_NAME                      : MY_PROC
ACTION                        : 116
ACTION_NAME                   : EXECUTE PROCEDURE
NEW_OWNER                     :
NEW_NAME                      :
OBJ_PRIVILEGE                 :
SYS_PRIVILEGE                 :
ADMIN_OPTION                  :
GRANTEE                       :
AUDIT_OPTION                  :
SES_ACTIONS                   :
LOGOFF_TIME                   :
LOGOFF_LREAD                  :
LOGOFF_PREAD                  :
LOGOFF_LWRITE                 :
LOGOFF_DLOCK                  :
COMMENT_TEXT                  :
SESSIONID                     : 53460109
ENTRYID                       : 4
STATEMENTID                   : 32
RETURNCODE                    : 0
PRIV_USED                     :
CLIENT_ID                     :
ECONTEXT_ID                   :
SESSION_CPU                   :
EXTENDED_TIMESTAMP            : 12-FEB-19 10.09.34.122000 AM +08:00
PROXY_SESSIONID               :
GLOBAL_UID                    :
INSTANCE_NUMBER               : 0
OS_PROCESS                    : 4840:30944
TRANSACTIONID                 :
SCN                           : 143830046
SQL_BIND                      :
SQL_TEXT                      :
OBJ_EDITION_NAME              :
DBID                          : 473612098
RLS_INFO                      :
CURRENT_USER                  : SCOTT

PL/SQL procedure successfully completed.




Is this answer out of date? If it is, please let us know via a Comment

More to Explore

Security

All of the vital components for a secure database are covered in the Security guide.