Auditing on PLSQL Objects

This is on 10g R2.
How can I derive auditing information from sys.aud$ specifically for PLSQL objects (function, stored procs, packages)
In other words, what are columns or values in rows in sys.aud$ table, that gives this information.
Thanks
R

SQL> desc aud$
Name                            Null?    Type
SESSIONID                       NOT NULL NUMBER
ENTRYID                       NOT NULL NUMBER
STATEMENT                       NOT NULL NUMBER
TIMESTAMP#                             DATE
USERID                              VARCHAR2(30)
USERHOST                             VARCHAR2(128)
TERMINAL                             VARCHAR2(255)
ACTION#                       NOT NULL NUMBER
RETURNCODE                       NOT NULL NUMBER
OBJ$CREATOR                             VARCHAR2(30)
OBJ$NAME                             VARCHAR2(128)
AUTH$PRIVILEGES                        VARCHAR2(16)
AUTH$GRANTEE                             VARCHAR2(30)
NEW$OWNER                             VARCHAR2(30)
NEW$NAME                             VARCHAR2(128)
SES$ACTIONS                             VARCHAR2(19)
SES$TID                             NUMBER
LOGOFF$LREAD                             NUMBER
LOGOFF$PREAD                             NUMBER
LOGOFF$LWRITE                             NUMBER
LOGOFF$DEAD                             NUMBER
LOGOFF$TIME                             DATE
COMMENT$TEXT                             VARCHAR2(4000)
CLIENTID                             VARCHAR2(64)
SPARE1                              VARCHAR2(255)
SPARE2                              NUMBER
OBJ$LABEL                             RAW(255)
SES$LABEL                             RAW(255)
PRIV$USED                             NUMBER
SESSIONCPU                             NUMBER
NTIMESTAMP#                             TIMESTAMP(6)
PROXY$SID                             NUMBER
USER$GUID                             VARCHAR2(32)
INSTANCE#                             NUMBER
PROCESS#                             VARCHAR2(16)
XID                                  RAW(8)
AUDITID                             VARCHAR2(64)
SCN                                  NUMBER
DBID                                  NUMBER
SQLBIND                             CLOB
SQLTEXT                             CLOB
OBJ$EDITION                             VARCHAR2(30)

Similar Messages

  • How to execute a function in oracle plsql object, when object dies

    I have a plsql object with a member function as exec_last.
    I want this procedure to be called when plsql object is cleaned or when the session hosting this object dies.
    In C, we have a system call as atexit(). Is there any such feature in Oracle 10g or any workaround using embedded java.
    This feature is required to flush the contents stored in plsql table in the object to the database, when program exits.
    Thank you,
    Warm Regards,
    Navin Srivastava

    navsriva wrote:
    Is there any better way to implement this in memory caching. What is the buffer cache of Oracle? It is exactly that - a memory cache for data blocks. Both new blocks (created by inserting new rows) and existing blocks (used by selects, updates and deletes, and re-used (freespace) by inserts).
    The Oracle buffer cache is a very mature and sophisticated cache. Attempting to do it "+better+" than the db buffer cache in another software layer (like PL/SQL) is mostly a waste of time and resources.. and invariable introduces another s/w layer that simply increases the number of moving parts. This in turn usually means increased complexity and slower performance.
    Why use bulk processing in PL/SQL? The basic and fundamental answer to that is to decrease the context switching between the PL engine and SQL engine.
    When running PL code to insert data into SQL, that data needs to be passed to the SQL engine, the PL engine needs to perform a context switch to the SQL engine to allow it to process that data and perform the SQL instruction.
    If there are a 1000 rows to inserts, it means a 1000 context switches.
    Bulk processing makes the "+communication/data pipe+" between the two bigger. Instead of passing a single row's data to the SQL engine via a context switch, a bulk collection/array of a 100 rows is passed. There is now a mere 10 context switches required to push that 1000 rows from the PL engine to the SQL engine.
    You can do the same from any other SQL client... (remember, that PL itself is also a SQL client). You can, using C/C++ for example, do the exact same thing. When passing row data to the SQL engine to insert, pass a collection of a 100 rows instead of the data for a single row.
    The exact same benefits result as in PL/SQL. A bigger communication pipe, allowing more data to be transferred to/from the SQL engine, resulting in less context switching.
    Of course, a context switch ito C/C++ is a lot more expensive than in PL/SQL - as the PL engine sits in the very same physical process as the SQL engine. Using C/C++, this will usually be a separate process communicating with the SQL engine process across the network.
    The same applies to other languages, like Java, C#, Delphi, Visual Basic and so on.
    It does not make sense to introduce another s/w layer, the PL/SQL engine, and have the client "+insert+" rows into its memory structures... and then use the PL engine to "+flush"+ that to the SQL engine via a bulk process command.
    It will be faster, and more scalable, having the client language using bulk processing directly and dealing with the SQL engine directly.
    Simple example. What does the SQL*Loader program (written in C) use? It does not use PL as a proxy for moving data from a CSV file into a SQL table. It calls SQL directly. It uses bulk processing. It is very fast at loading data.
    There is an exception to this. When PL is used as a business processing and validation layer. Instead of the client code implementing that logic, it is done using PL. The client then no longer will manually add an invoice to the INVOICES table for example. It instead calls the AddNewInvoice PL/SQL procedure - and this procedure does all. It checks the customer code as valid. Ensures that there's stock available of the products being ordered on the invoice. Etc.
    But in this scenario, PL is not used a secondhand "buffer cache". It is used for what it has been designed for - a proper application layer inside the database.

  • Plsql objects in timesten

    Hi,
    may be question is obvious,but is it possible to create plsql objects (procedure, packages/bodies) in timesten database?
    Message was edited by:
    `mo

    Hi 'mo,
    Support for PL/SQL stored procedures is not available in TimesTen 7.0. This functionality is in plan for a future product release.
    Susan

  • Determing plsql object type

    I have a plsql object which is a subclass of a super class. How do I exactly determine the instance of the object?

    SYS_TYPEID function can be used in a query to return the typeid of the most specific type of the object instance passed to the function as an argument.
    See how to get the text name of an object's type:
    http://www.toadworld.com/Knowledge/DatabaseKnowledge/DatabaseTips/OracleTips/tabid/311/Default.aspx
    categories "PL/SQL 2006": "How to get the text name of an object's type"
    Regards,
    Zlatko

  • Listing out the plsql objects which update tables

    1) Is there a way i can list out which plsql object is doing DML statement on a table, i know we can use USER_DEPENDENCIES or DBA_DEPENDENCIES tables but it is listing out the packages or procedures even if a column is used to define a ref datatype or even if the code is commented out, i just want to see only the objects that are issuing DML statements.
    2) Is it possible to see at column level details, meaning if a column is updated in one procedure and another column is updated in another procedure, can i list out the procedures and the columns that would be updated or inserted in that procedure.
    appreciate your help, Thank you.

    Do a join of dba_dependencies and dba_hist_sql_plan/v$sql_plan
    thanks
    http://swervedba.wordpress.com/

  • BO4 - Auditing show if object used in any reports?

    Hi,
    Considering hiding objects in universe but want to ascertain if objects used in any reports.
    Had a look at the default auditing reports but cannot see anything obvious.
    Anyone know if possible to determine if a particular object and/or class from a unx file used in any reports?
    Thanks

    This cannot be achieved by Auditing or Query Builder. You can write a custom SDK code to get this info.

  • Converting from JAVA HASHMAP to PLSQL object or CLOB

    Hello All,
    My oracle version in 10.2.0.4 on a solaris V880 machine.
    Our Application Java SDK is 1.4.
    I am trying to pass in a series of XML (considerably huge for XML type column) from java application plsql which stores them into an oracle table with column as external BLOB. Since the contents are so heavy for each objects , using XMLTYPE column is not feasible.
    The xml files comes as either java hash_map or string which i have to pass as parameter to an Oracle stored procedure which stores as external BLOB in OS through a table.
    My first doubt is this the correct approach.
    My second doubt here is how to interpret java hash_map object within PLSQL when it is passed to it.
    Apologies if the question is silly since i am a new comer to java.
    Thanks in advance ,
    Vijay G

    vijay S P G wrote:
    If i have plsql collection with a varchar2 and a blob as record type then can i directly pass the java hash map to the procedure having parameter datatype as the above said record type ?Of course not. Obviously the first reason for that is because the "blob" needs to be a file path and not a blob.
    Second reason is no databases that I know of take a hash data type. Some take arrays. But I doubt that is worth the trouble.
    You have a collection of name value (path) pairs. Iterate over the collection and for each name do an insert of the name and path.

  • Audit whole schema objects by multiple users or schemas in oracle 11gR2

    OS: LInux
    DB: Oracle 11gR2
    schema as many tables and DML access given to many user/schemas in oracle db.
    AUDIT ALL BY test BY ACCESS; appears to be audit records created only when changes are done using actual owner connection but not grantee..
    I need to audit all the test tables DML and DDL performed not just owner but all the grantees (grantees action should be audited only grantee do dml or ddl on test owner tables not his own tables).
    Need to audit test owner tables accessed by multiple users DML and DDL actions..
    is there any simplest way to do this and can someone please help me out?
    thanks.

    http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_4007.htm#i2059073
    Please read the passage labeled 'Auditing by clause'. It answers your question.
    Kindly consult documentation before asking any question.
    Sybrand Bakker
    Senior Oracle DBA

  • Plsql object type polymorphism

    Hi everyone.
    Is adhoc polymorphism possible in pl/sql using Oracle's object types? Here is some sample code that I tried on an Oracle 10.2.0.3 64-bit database running on Solaris.
    Connected.
    09:58:58 SQL> create type root_ty as object (
    09:59:03   2    a1     varchar2(32 char)
    09:59:03   3  ) not final
    09:59:03   4  /
    Type created.
    Elapsed: 00:00:00.17
    09:59:05 SQL> create type sub_ty under root_ty (
    09:59:10   2    a2     varchar2(32 char)
    09:59:10   3  , constructor function sub_ty(str in varchar2) return self as resul
    09:59:10   4  , member procedure display_a2
    09:59:10   5  ) final
    09:59:10   6  /
    Type created.
    Elapsed: 00:00:00.06
    09:59:12 SQL> create or replace type body sub_ty is
    09:59:18   2    constructor function sub_ty(str in varchar2)
    09:59:18   3      return self as result
    09:59:18   4    is
    09:59:18   5    begin
    09:59:18   6      self.a2 := str;
    09:59:18   7     
    09:59:18   8      return;
    09:59:18   9    end;
    09:59:18  10   
    09:59:18  11    member procedure display_a2
    09:59:18  12    is
    09:59:18  13    begin
    09:59:18  14      dbms_output.put_line('a2 value is .... '||a2);
    09:59:18  15    end;
    09:59:18  16  end;
    09:59:18  17  /
    Type body created.
    Elapsed: 00:00:00.04
    09:59:20 SQL> set serveroutput on
    10:00:31 SQL> declare
    10:00:35   2    l_ty    root_ty;
    10:00:35   3  begin
    10:00:35   4    l_ty := new sub_ty('Woot!');
    10:00:35   5   
    10:00:35   6    l_ty.display_a2();
    10:00:35   7  end;
    10:00:35   8  /
      l_ty.display_a2();
    ERROR at line 6:
    ORA-06550: line 6, column 8:
    PLS-00302: component 'DISPLAY_A2' must be declared
    ORA-06550: line 6, column 3:
    PL/SQL: Statement ignored
    Elapsed: 00:00:00.06
    10:00:37 SQL> declare
    10:00:53   2    l_ty    root_ty;
    10:00:53   3  begin
    10:00:53   4    l_ty := new sub_ty('Woot!');
    10:00:53   5   
    10:00:53   6  --  l_ty.display_a2();
    10:00:53   7  end;
    10:00:53   8  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.01
    10:00:53 SQL> declare
    10:01:30   2    l_ty    sub_ty;
    10:01:30   3  begin
    10:01:30   4    l_ty := new sub_ty('Woot!');
    10:01:30   5   
    10:01:30   6    l_ty.display_a2();
    10:01:30   7  end;
    10:01:30   8  /
    a2 value is .... Woot!
    PL/SQL procedure successfully completed.Certainly seems like this should be possible ... Am I missing something simple?
    Thanks for any input.
    - KR

    Here is an example of what polymorphism is supposed to do:
    SQL> create type bird as object
      2  (name varchar2 (30)
      3  , member function fly return varchar2
      4  , member function make_a_noise return varchar2)
      5  not final
      6  /
    Type created.
    SQL>
    SQL> create type birds_nt as table of bird;
      2  /
    Type created.
    SQL>
    SQL>
    SQL> create or replace type body bird as
      2
      3      member function fly return varchar2
      4      is
      5      begin
      6          return 'my name is '||self.name;
      7      end;
      8
      9      member function make_a_noise return varchar2
    10      is
    11      begin
    12          return 'generic twitter';
    13      end;
    14
    15  end;
    16  /
    Type body created.
    SQL>
    SQL>
    SQL> create type duck under bird (
      2  overriding member function make_a_noise return varchar2
      3  , member procedure waddle
      4  );
      5  /
    Type created.
    SQL>
    SQL> create or replace type body duck as
      2
      3
      4      overriding member function make_a_noise return varchar2
      5      is
      6      begin
      7          return 'quack!';
      8      end;
      9
    10      member procedure waddle
    11      is
    12      begin
    13          null;
    14      end;
    15
    16
    17  end;
    18  /
    Type body created.
    SQL>
    SQL>
    SQL>
    SQL> create type chicken under bird (
      2  overriding member function make_a_noise return varchar2
      3  , member procedure peck
      4  )
      5  not final;
      6  /
    Type created.
    SQL>
    SQL> create or replace type body chicken as
      2
      3
      4      overriding member function make_a_noise return varchar2
      5      is
      6      begin
      7          return 'cluck!';
      8      end;
      9
    10      member procedure peck
    11      is
    12      begin
    13          null;
    14      end;
    15
    16
    17  end;
    18  /
    Type body created.
    SQL>
    SQL> create type canary under bird (
      2  overriding member function make_a_noise return varchar2
      3  );
      4  /
    Type created.
    SQL>
    SQL> create or replace type body canary as
      2
      3
      4      overriding member function make_a_noise return varchar2
      5      is
      6      begin
      7          return 'I taught I taw a puddy tat!!!';
      8      end;
      9
    10
    11  end;
    12  /
    Type body created.
    SQL>
    SQL> create type rooster  under chicken (
      2  overriding member function make_a_noise return varchar2
      3  )
      4  ;
      5  /
    Type created.
    SQL>
    SQL> create or replace type body rooster as
      2
      3
      4      overriding member function make_a_noise return varchar2
      5      is
      6      begin
      7          return 'That''s a joke... I say, that''s a joke, son.';
      8      end;
      9
    10
    11  end;
    12  /
    Type body created.
    SQL>
    SQL>
    SQL>
    SQL>
    SQL> declare
      2      my_aviary birds_nt := birds_nt();
      3  begin
      4      my_aviary.extend(5);
      5      my_aviary(1) := duck('Donald');
      6      my_aviary(2) := chicken('Chicken Little');
      7      my_aviary(3) := canary('Tweetie Pie');
      8      my_aviary(4) := rooster('Foghorn Leghorn');
      9      my_aviary(5) := bird('?');
    10      for idx in my_aviary.first()..my_aviary.last()
    11      loop
    12          dbms_output.put_line( my_aviary(idx).fly() );
    13          dbms_output.put_line( my_aviary(idx).make_a_noise() );
    14      end loop;
    15  end;
    16  /
    my name is Donald
    quack!
    my name is Chicken Little
    cluck!
    my name is Tweetie Pie
    I taught I taw a puddy tat!!!
    my name is Foghorn Leghorn
    That's a joke... I say, that's a joke, son.
    my name is ?
    generic twitter
    PL/SQL procedure successfully completed.
    SQL>Now, in that loop woudl it make sense to execute a peck() on all of those entries? Nope. Furthermore as far as I can tell it is not possible to find out what sub-type an object is from with PL/SQL, so you couldn't even use Padders's TREAT ploy.
    So: if you want to do something generic use a super-type. If you want to do something specific use a sub-type.
    Cheers, APC
    blog: http://radiofreetooting.blogspot.com

  • How to handle plsql Object and Table type inside BPEL

    Hi All,
    I have a procedure with 5 IN and 4 OUT parameters. Out of 4, One is Object type and remaining 3 are Table type. Now in my bpel, i am calling this proc from DB Adapter. The DB Adapter wizard created XSD with proper structure. But when i am testing this i am not getting these out parameters values in the payload of Invoke DBAdapter activity. I am neither getting errors nor output.
    What could be the issue.?
    Thanks in advance,
    Sudheer

    Arik,
    JDev is not creating any wrapper packages as such. It simply created a XSD with same as my procedure name.
    My XSD looks like this...
    <element name="OutputParameters">
    <complexType>
    <sequence>
    <element name="P_OBJ_H_INFO_O" type="db:APPS.H_OBJ_TYPE" db:index="6" db:type="Struct" minOccurs="0" nillable="true"/>
    <element name="P_TAB_L_INFO_O" type="db:APPS.L_TAB_TYPE" db:index="7" db:type="Array" minOccurs="0" nillable="true"/>
    <element name="P_TAB_M_INFO_O" type="db:APPS.M_TAB_TYPE" db:index="8" db:type="Array" minOccurs="0" nillable="true"/>
    <element name="P_TAB_A_INFO_O" type="db:APPS.A_TAB_TYPE" db:index="9" db:type="Array" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    And again the 3 table types internally referring object types.
    Thanks for reply. Awaiting response...
    Sudheer

  • Difference between MAP member and ORDER member  method in PLSQL Object Type

    Hi all,
    I need to know clear explanation about the MAP and ORDER member method and its Difference.Please share if you know.
    thanks in advance.
    regards,
    Lokesh
    Edited by: 972864 on Dec 10, 2012 1:50 AM

    http://docs.oracle.com/cd/B28359_01/appdev.111/b28371/adobjbas.htm#autoId13

  • PCD Audit : What information about the PCD objects are stored in the PCD?

    Folks,
    Need some information on the information stored in the PCD for audit purposes.
    Object = Any PCD object, typically iView, Page, Workset, Role, Group...
    1. Creation of any object - Should definately be present in the PCD
    2. Any modification including history - List of all actions on any PCD object - I am sure the last modification is tracked, but can we track every change to the object from creation?
    3. Deletion of any object? - This I am not sure of - Does the PCD store information about deleted object's like deletion time stamp and the user who deleted etc?
    Thank you...

    Hi,
    >>1. Creation of any object - Should definately be present in the PCD
    There is no doubt about this.
    >>2. Any modification including history - List of all actions on any PCD object - I am sure the last modification is tracked, but can we track every change to the object from creation?
       <b>AND</b>
    >>3. Deletion of any object? - This I am not sure of - Does the PCD store information about deleted object's like deletion time stamp and the user who deleted etc?
    There is no versioning concept in PCD right now, but ofcourse planned for future.
    So you cannot track the history and deleted objects, but there exists PCD Repository Manager in KM on which you can activate versioning. Check if this suites your needs. Never tried but logically ever PCD change should get versioned here.
    http://help.sap.com/saphelp_nw70/helpdata/en/76/a8934259a5cc6ae10000000a155106/frameset.htm
    Greetings,
    Praveen Gudapati

  • Auditing in oracle 10g database and oracle 10g application server

    Dear friends,
    We have oracle 10g application server and oracle 10g database server in place.My criteria is to audit users connected using oracle application user credentials to the database.
    Can you please tell me how can i do it.
    Thanks & regards,

    Its the database connection you want to track. The session audit will show where it came from.
    Auditing is turned using this command:
    alter system set audit_trail = DB scope=spfile;
    Note: The use of spfile will require a DB bounce before audit starts
    To audit Sessions:
    audit create session;
    Query by Audit Type:
    SELECT A.USERNAME,
    OS_USERNAME,
    A.TIMESTAMP,
    A.RETURNCODE,
    TERMINAL,
    USERHOST
    FROM DBA_AUDIT_SESSION A
    WHERE USERHOST = <replace with iAS servername> ;
    By User
    SELECT USERNAME,OBJ_NAME,ACTION_NAME , TIMESTAMP
    FROM DBA_AUDIT_TRAIL WHERE USERNAME = 'SCOTT';
    Check for users sharing database accounts
    select count(distinct(terminal)),username
    from dba_audit_session
    having count(distinct(terminal))>1
    group by username;
    Attempts to access the database at unusual hours
    SELECT username, terminal, action_name, returncode,
    TO_CHAR (TIMESTAMP, 'DD-MON-YYYY HH24:MI:SS'),
    TO_CHAR (logoff_time, 'DD-MON-YYYY HH24:MI:SS')
    FROM dba_audit_session
    WHERE TO_DATE (TO_CHAR (TIMESTAMP, 'HH24:MI:SS'), 'HH24:MI:SS') <
    TO_DATE ('08:00:00', 'HH24:MI:SS')
    OR TO_DATE (TO_CHAR (TIMESTAMP, 'HH24:MI:SS'), 'HH24:MI:SS') >
    TO_DATE ('19:30:00', 'HH24:MI:SS');
    Attempts to access the database with non-existent users
    SELECT username, terminal, TO_CHAR (TIMESTAMP, 'DD-MON-YYYY HH24:MI:SS')
    FROM dba_audit_session
    WHERE returncode <> 0
    AND NOT EXISTS (SELECT 'x'
    FROM dba_users
    WHERE dba_users.username = dba_audit_session.username);
    Other audits you might consider:
    audit grant any object privilege;
    audit alter user;
    audit create user;
    audit drop user;
    audit drop tablespace;
    audit grant any role;
    audit grant any privilege;
    audit alter system;
    audit alter session;
    audit delete on AUD$ by access;
    audit insert on AUD$ by access;
    audit update on AUD$ by access;
    audit delete table;
    audit create tablespace;
    audit alter database;
    audit create role;
    audit create table;
    audit alter any procedure;
    audit create view;
    audit drop any procedure;
    audit drop profile;
    audit alter profile;
    audit alter any table;
    audit create public database link;
    Best Regards
    mseberg

  • How to turn off this audit?

    I see lots of auditing records getting generated with action# 85, i looked up, it is truncate table.
    how can i turn it off?
    the following are the current auditing option from this database. which one is generating this action# 85.
    ====
    AUDIT ADMINISTER ANY SQL TUNING SET BY ACCESS ;
    AUDIT ADMINISTER DATABASE TRIGGER BY ACCESS ;
    AUDIT ADMINISTER SQL MANAGEMENT OBJECT BY ACCESS ;
    AUDIT ADMINISTER SQL TUNING SET BY ACCESS ;
    AUDIT ADVISOR BY ACCESS ;
    AUDIT ALTER ANY ASSEMBLY BY ACCESS ;
    AUDIT ALTER ANY CLUSTER BY ACCESS ;
    AUDIT ALTER ANY CUBE BY ACCESS ;
    AUDIT ALTER ANY CUBE DIMENSION BY ACCESS ;
    AUDIT ALTER ANY DIMENSION BY ACCESS ;
    AUDIT ALTER ANY EDITION BY ACCESS ;
    AUDIT ALTER ANY EVALUATION CONTEXT BY ACCESS ;
    AUDIT ALTER ANY INDEX BY ACCESS ;
    AUDIT ALTER ANY INDEXTYPE BY ACCESS ;
    AUDIT ALTER ANY LIBRARY BY ACCESS ;
    AUDIT ALTER ANY MATERIALIZED VIEW BY ACCESS ;
    AUDIT ALTER ANY MINING MODEL BY ACCESS ;
    AUDIT ALTER ANY OPERATOR BY ACCESS ;
    AUDIT ALTER ANY OUTLINE BY ACCESS ;
    AUDIT ALTER ANY PROCEDURE BY ACCESS ;
    AUDIT ALTER ANY ROLE BY ACCESS ;
    AUDIT ALTER ANY RULE BY ACCESS ;
    AUDIT ALTER ANY RULE SET BY ACCESS ;
    AUDIT ALTER ANY SEQUENCE BY ACCESS ;
    AUDIT ALTER ANY SQL PROFILE BY ACCESS ;
    AUDIT ALTER ANY TABLE BY ACCESS ;
    AUDIT ALTER ANY TRIGGER BY ACCESS ;
    AUDIT ALTER ANY TYPE BY ACCESS ;
    AUDIT ALTER DATABASE BY ACCESS ;
    AUDIT ALTER DATABASE LINK BY ACCESS ;
    AUDIT ALTER JAVA CLASS BY ACCESS ;
    AUDIT ALTER JAVA RESOURCE BY ACCESS ;
    AUDIT ALTER JAVA SOURCE BY ACCESS ;
    AUDIT ALTER MINING MODEL BY ACCESS ;
    AUDIT ALTER PROFILE BY ACCESS ;
    AUDIT ALTER PUBLIC DATABASE LINK BY ACCESS ;
    AUDIT ALTER RESOURCE COST BY ACCESS ;
    AUDIT ALTER ROLLBACK SEGMENT BY ACCESS ;
    AUDIT ALTER SEQUENCE BY ACCESS ;
    AUDIT ALTER SESSION BY ACCESS ;
    AUDIT ALTER SYSTEM BY ACCESS ;
    AUDIT ALTER TABLE BY ACCESS ;
    AUDIT ALTER TABLESPACE BY ACCESS ;
    AUDIT ALTER USER BY ACCESS ;
    AUDIT ANALYZE ANY BY ACCESS ;
    AUDIT AUDIT ANY BY ACCESS ;
    AUDIT AUDIT SYSTEM BY ACCESS ;
    AUDIT BACKUP ANY TABLE BY ACCESS ;
    AUDIT BECOME USER BY ACCESS ;
    AUDIT CHANGE NOTIFICATION BY ACCESS ;
    AUDIT CLUSTER BY ACCESS ;
    AUDIT COMMENT ANY MINING MODEL BY ACCESS ;
    AUDIT COMMENT ANY TABLE BY ACCESS ;
    AUDIT COMMENT EDITION BY ACCESS ;
    AUDIT COMMENT MINING MODEL BY ACCESS ;
    AUDIT COMMENT TABLE BY ACCESS ;
    AUDIT CONTEXT BY ACCESS ;
    AUDIT CREATE ANY ASSEMBLY BY ACCESS ;
    AUDIT CREATE ANY CLUSTER BY ACCESS ;
    AUDIT CREATE ANY CONTEXT BY ACCESS ;
    AUDIT CREATE ANY CUBE BY ACCESS ;
    AUDIT CREATE ANY CUBE BUILD PROCESS BY ACCESS ;
    AUDIT CREATE ANY CUBE DIMENSION BY ACCESS ;
    AUDIT CREATE ANY DIMENSION BY ACCESS ;
    AUDIT CREATE ANY DIRECTORY BY ACCESS ;
    AUDIT CREATE ANY EDITION BY ACCESS ;
    AUDIT CREATE ANY EVALUATION CONTEXT BY ACCESS ;
    AUDIT CREATE ANY INDEX BY ACCESS ;
    AUDIT CREATE ANY INDEXTYPE BY ACCESS ;
    AUDIT CREATE ANY JOB BY ACCESS ;
    AUDIT CREATE ANY LIBRARY BY ACCESS ;
    AUDIT CREATE ANY MATERIALIZED VIEW BY ACCESS ;
    AUDIT CREATE ANY MEASURE FOLDER BY ACCESS ;
    AUDIT CREATE ANY MINING MODEL BY ACCESS ;
    AUDIT CREATE ANY OPERATOR BY ACCESS ;
    AUDIT CREATE ANY OUTLINE BY ACCESS ;
    AUDIT CREATE ANY PROCEDURE BY ACCESS ;
    AUDIT CREATE ANY RULE BY ACCESS ;
    AUDIT CREATE ANY RULE SET BY ACCESS ;
    AUDIT CREATE ANY SEQUENCE BY ACCESS ;
    AUDIT CREATE ANY SQL PROFILE BY ACCESS ;
    AUDIT CREATE ANY SYNONYM BY ACCESS ;
    AUDIT CREATE ANY TABLE BY ACCESS ;
    AUDIT CREATE ANY TRIGGER BY ACCESS ;
    AUDIT CREATE ANY TYPE BY ACCESS ;
    AUDIT CREATE ANY VIEW BY ACCESS ;
    AUDIT CREATE ASSEMBLY BY ACCESS ;
    AUDIT CREATE CLUSTER BY ACCESS ;
    AUDIT CREATE CUBE BY ACCESS ;
    AUDIT CREATE CUBE BUILD PROCESS BY ACCESS ;
    AUDIT CREATE CUBE DIMENSION BY ACCESS ;
    AUDIT CREATE DATABASE LINK BY ACCESS ;
    AUDIT CREATE DIMENSION BY ACCESS ;
    AUDIT CREATE EVALUATION CONTEXT BY ACCESS ;
    AUDIT CREATE EXTERNAL JOB BY ACCESS ;
    AUDIT CREATE INDEXTYPE BY ACCESS ;
    AUDIT CREATE JAVA CLASS BY ACCESS ;
    AUDIT CREATE JAVA RESOURCE BY ACCESS ;
    AUDIT CREATE JAVA SOURCE BY ACCESS ;
    AUDIT CREATE JOB BY ACCESS ;
    AUDIT CREATE LIBRARY BY ACCESS ;
    AUDIT CREATE MATERIALIZED VIEW BY ACCESS ;
    AUDIT CREATE MEASURE FOLDER BY ACCESS ;
    AUDIT CREATE MINING MODEL BY ACCESS ;
    AUDIT CREATE OPERATOR BY ACCESS ;
    AUDIT CREATE PROCEDURE BY ACCESS ;
    AUDIT CREATE PROFILE BY ACCESS ;
    AUDIT CREATE PUBLIC DATABASE LINK BY ACCESS ;
    AUDIT CREATE PUBLIC SYNONYM BY ACCESS ;
    AUDIT CREATE ROLE BY ACCESS ;
    AUDIT CREATE ROLLBACK SEGMENT BY ACCESS ;
    AUDIT CREATE RULE BY ACCESS ;
    AUDIT CREATE RULE SET BY ACCESS ;
    AUDIT CREATE SEQUENCE BY ACCESS ;
    AUDIT CREATE SESSION BY ACCESS ;
    AUDIT CREATE SYNONYM BY ACCESS ;
    AUDIT CREATE TABLE BY ACCESS ;
    AUDIT CREATE TABLESPACE BY ACCESS ;
    AUDIT CREATE TRIGGER BY ACCESS ;
    AUDIT CREATE TYPE BY ACCESS ;
    AUDIT CREATE USER BY ACCESS ;
    AUDIT CREATE VIEW BY ACCESS ;
    AUDIT DATABASE LINK BY ACCESS ;
    AUDIT DEBUG ANY PROCEDURE BY ACCESS ;
    AUDIT DEBUG CONNECT SESSION BY ACCESS ;
    AUDIT DEBUG PROCEDURE BY ACCESS ;
    AUDIT DELETE ANY CUBE DIMENSION BY ACCESS ;
    AUDIT DELETE ANY MEASURE FOLDER BY ACCESS ;
    AUDIT DELETE ANY TABLE BY ACCESS ;
    AUDIT DEQUEUE ANY QUEUE BY ACCESS ;
    AUDIT DIMENSION BY ACCESS ;
    AUDIT DIRECTORY BY ACCESS ;
    AUDIT DROP ANY ASSEMBLY BY ACCESS ;
    AUDIT DROP ANY CLUSTER BY ACCESS ;
    AUDIT DROP ANY CONTEXT BY ACCESS ;
    AUDIT DROP ANY CUBE BY ACCESS ;
    AUDIT DROP ANY CUBE BUILD PROCESS BY ACCESS ;
    AUDIT DROP ANY CUBE DIMENSION BY ACCESS ;
    AUDIT DROP ANY DIMENSION BY ACCESS ;
    AUDIT DROP ANY DIRECTORY BY ACCESS ;
    AUDIT DROP ANY EDITION BY ACCESS ;
    AUDIT DROP ANY EVALUATION CONTEXT BY ACCESS ;
    AUDIT DROP ANY INDEX BY ACCESS ;
    AUDIT DROP ANY INDEXTYPE BY ACCESS ;
    AUDIT DROP ANY LIBRARY BY ACCESS ;
    AUDIT DROP ANY MATERIALIZED VIEW BY ACCESS ;
    AUDIT DROP ANY MEASURE FOLDER BY ACCESS ;
    AUDIT DROP ANY MINING MODEL BY ACCESS ;
    AUDIT DROP ANY OPERATOR BY ACCESS ;
    AUDIT DROP ANY OUTLINE BY ACCESS ;
    AUDIT DROP ANY PROCEDURE BY ACCESS ;
    AUDIT DROP ANY ROLE BY ACCESS ;
    AUDIT DROP ANY RULE BY ACCESS ;
    AUDIT DROP ANY RULE SET BY ACCESS ;
    AUDIT DROP ANY SEQUENCE BY ACCESS ;
    AUDIT DROP ANY SQL PROFILE BY ACCESS ;
    AUDIT DROP ANY SYNONYM BY ACCESS ;
    AUDIT DROP ANY TABLE BY ACCESS ;
    AUDIT DROP ANY TRIGGER BY ACCESS ;
    AUDIT DROP ANY TYPE BY ACCESS ;
    AUDIT DROP ANY VIEW BY ACCESS ;
    AUDIT DROP JAVA CLASS BY ACCESS ;
    AUDIT DROP JAVA RESOURCE BY ACCESS ;
    AUDIT DROP JAVA SOURCE BY ACCESS ;
    AUDIT DROP PROFILE BY ACCESS ;
    AUDIT DROP PUBLIC DATABASE LINK BY ACCESS ;
    AUDIT DROP PUBLIC SYNONYM BY ACCESS ;
    AUDIT DROP ROLLBACK SEGMENT BY ACCESS ;
    AUDIT DROP TABLESPACE BY ACCESS ;
    AUDIT DROP USER BY ACCESS ;
    AUDIT ENQUEUE ANY QUEUE BY ACCESS ;
    AUDIT EXECUTE ANY ASSEMBLY BY ACCESS ;
    AUDIT EXECUTE ANY CLASS BY ACCESS ;
    AUDIT EXECUTE ANY EVALUATION CONTEXT BY ACCESS ;
    AUDIT EXECUTE ANY INDEXTYPE BY ACCESS ;
    AUDIT EXECUTE ANY LIBRARY BY ACCESS ;
    AUDIT EXECUTE ANY OPERATOR BY ACCESS ;
    AUDIT EXECUTE ANY PROCEDURE BY ACCESS ;
    AUDIT EXECUTE ANY PROGRAM BY ACCESS ;
    AUDIT EXECUTE ANY RULE BY ACCESS ;
    AUDIT EXECUTE ANY RULE SET BY ACCESS ;
    AUDIT EXECUTE ANY TYPE BY ACCESS ;
    AUDIT EXECUTE ASSEMBLY BY SESSION ;
    AUDIT EXEMPT ACCESS POLICY BY ACCESS ;
    AUDIT EXEMPT IDENTITY POLICY BY ACCESS ;
    AUDIT EXPORT FULL DATABASE BY ACCESS ;
    AUDIT FLASHBACK ANY TABLE BY ACCESS ;
    AUDIT FLASHBACK ARCHIVE ADMINISTER BY ACCESS ;
    AUDIT FORCE ANY TRANSACTION BY ACCESS ;
    AUDIT FORCE TRANSACTION BY ACCESS ;
    AUDIT GLOBAL QUERY REWRITE BY ACCESS ;
    AUDIT GRANT ANY OBJECT PRIVILEGE BY ACCESS ;
    AUDIT GRANT ANY PRIVILEGE BY ACCESS ;
    AUDIT GRANT ANY ROLE BY ACCESS ;
    AUDIT GRANT DIRECTORY BY ACCESS ;
    AUDIT GRANT EDITION BY ACCESS ;
    AUDIT GRANT MINING MODEL BY ACCESS ;
    AUDIT GRANT PROCEDURE BY ACCESS ;
    AUDIT GRANT SEQUENCE BY ACCESS ;
    AUDIT GRANT TABLE BY ACCESS ;
    AUDIT GRANT TYPE BY ACCESS ;
    AUDIT IMPORT FULL DATABASE BY ACCESS ;
    AUDIT INDEX BY ACCESS ;
    AUDIT INSERT ANY CUBE DIMENSION BY ACCESS ;
    AUDIT INSERT ANY MEASURE FOLDER BY ACCESS ;
    AUDIT INSERT ANY TABLE BY ACCESS ;
    AUDIT LOCK ANY TABLE BY ACCESS ;
    AUDIT MANAGE ANY FILE GROUP BY ACCESS ;
    AUDIT MANAGE ANY QUEUE BY ACCESS ;
    AUDIT MANAGE FILE GROUP BY ACCESS ;
    AUDIT MANAGE SCHEDULER BY ACCESS ;
    AUDIT MANAGE TABLESPACE BY ACCESS ;
    AUDIT MATERIALIZED VIEW BY ACCESS ;
    AUDIT MERGE ANY VIEW BY ACCESS ;
    AUDIT MINING MODEL BY ACCESS ;
    AUDIT NOT EXISTS BY ACCESS ;
    AUDIT ON COMMIT REFRESH BY ACCESS ;
    AUDIT PROCEDURE BY ACCESS ;
    AUDIT PROFILE BY ACCESS ;
    AUDIT PUBLIC DATABASE LINK BY ACCESS ;
    AUDIT PUBLIC SYNONYM BY ACCESS ;
    AUDIT QUERY REWRITE BY ACCESS ;
    AUDIT READ ANY FILE GROUP BY ACCESS ;
    AUDIT RESTRICTED SESSION BY ACCESS ;
    AUDIT RESUMABLE BY ACCESS ;
    AUDIT ROLE BY ACCESS ;
    AUDIT ROLLBACK SEGMENT BY ACCESS ;
    AUDIT SELECT ANY CUBE BY ACCESS ;
    AUDIT SELECT ANY CUBE DIMENSION BY ACCESS ;
    AUDIT SELECT ANY MINING MODEL BY ACCESS ;
    AUDIT SELECT ANY SEQUENCE BY ACCESS ;
    AUDIT SELECT ANY TABLE BY ACCESS ;
    AUDIT SELECT ANY TRANSACTION BY ACCESS ;
    AUDIT SEQUENCE BY ACCESS ;
    AUDIT SYNONYM BY ACCESS ;
    AUDIT SYSDBA BY ACCESS ;
    AUDIT SYSOPER BY ACCESS ;
    AUDIT SYSTEM AUDIT BY ACCESS ;
    AUDIT SYSTEM GRANT BY ACCESS ;
    AUDIT TABLESPACE BY ACCESS ;
    AUDIT TRIGGER BY ACCESS ;
    AUDIT TYPE BY ACCESS ;
    AUDIT UNDER ANY TABLE BY ACCESS ;
    AUDIT UNDER ANY TYPE BY ACCESS ;
    AUDIT UNDER ANY VIEW BY ACCESS ;
    AUDIT UNLIMITED TABLESPACE BY ACCESS ;
    AUDIT UPDATE ANY CUBE BY ACCESS ;
    AUDIT UPDATE ANY CUBE BUILD PROCESS BY ACCESS ;
    AUDIT UPDATE ANY CUBE DIMENSION BY ACCESS ;
    AUDIT UPDATE ANY TABLE BY ACCESS ;
    AUDIT USER BY ACCESS ;
    AUDIT VIEW BY ACCESS ;
    ============

    I have tested on my DEVELOPMENT DB again. It is working fine. It requires to reconnect after turn off the DROP ANY TABLE. Have you done that? Send me output of test you performed.
    You can test using following script.
    connect as USER2 & execute following statements.
    audit drop any table;
    create table user1.test(
    col1 number,
    col2 number);
    select os_username, username, action_name, priv_used
    from dba_audit_trail a
    where action = 85
    and obj_name = 'TEST';
    truncate table user1.test;
    select os_username, username, action_name, priv_used
    from dba_audit_trail a
    where action = 85
    and obj_name = 'TEST';
    noaudit drop any table;
    reconnect here as USER2
    truncate table user1.test;
    select os_username, username, action_name, priv_used
    from dba_audit_trail a
    where action = 85
    and obj_name = 'TEST';

  • Why or When should we use Execute Immediate in PLSQL??

    Hi Frnds,
    Long Ago i have received a interview question that ...
    How can U create a table in the PLSQL object(Function or procedure)?
    But the thing y should we use execute immediate?
    In which scenario we should we should use????????????
    Why or When should we use Execute Immediate in PLSQL????

    OR
    http://stackoverflow.com/questions/18375990/oracle-what-does-execute-immediate-means
    For DML you'd use it when running statements that you don't have available at compile time, e.g. if the column list is based on a selection from the user.
    In your case it's being used because DDL cannot be run as static SQL from within PL/SQL. Only certain query, DML and TCL commands are valid. Anything else has to be treated as dynamic.
    I'd say it's rare to need to use DDL from a PL/SQL block. TRUNCATE might be reasonable; if you find anything creating or dropping objects on the fly then that might be more of a concern as it can suggest a suboptimal data model.
    EXECUTE IMMEDIATE itself does not automatically commit; but if you execute DDL then that will behave the same as if you ran it outside PL/SQL, so it will commit in your case, yes.
    Incidentally, I'm not sure why your code is using an intermediate variable to hold the statement; that's useful if you want to display what it's going to run maybe, but you don't seem to be doing that. What you have could be done as:
    EXECUTE IMMEDIATE 'TRUNCATE TABLE BD_BIDS_EXT_DET';
    Thank you

Maybe you are looking for

  • Trigger event for badi ac_document

    Hello, I want to use BADI AC_DOCUMENT for text substitution following the note 386896. I create a new implementation but when I create a new FI Document the BADI is not triggered correctly. How can I know where the BADI is called in ABAP program ? Th

  • Not able to connect REMOTE via Wi-fi on your PC ? I figured out why

    I have read endless forum posts and spoken to Apple techs who could not help me at all on this. I felt like i was talking to snake oil salesmen at one point with the outlandish nonsense they were telling me. Anyhow i have a pc and use Apple Remote to

  • LinkedList

    Hey! Could anyone help med with this prob: I' m trying to create a linked list. Say I have a list of 5 elements in my linked list, and now I want to add another element in position nr 3 and move the following elements. How do I do? I tried in this wa

  • Development program for MCI6 influence

    HI    Developers has developed a program for equipment master  data batch import,Unfortunately,when i  import some equipments by use the program,i found the total of equipment did't change in MCI6,I don't know much of ABAP.the question is if i want t

  • League refuses to dialogue

    <a href="http://www.care2.com/c2c/groups/disc.html?gpp=33688&pst=1533957">Cardiff vs Liverpool Live stream</a> <a href="http://www.care2.com/c2c/share/detail/3115050">Man Utd vs Norwich City Live stream</a> <a href="http://www.care2.com/c2c/share/det