Auditing rows in Oracle

Hello,
I have been told it is not possible to audit operations done to specific rows in Oracle 8.1.7.3.0 or 8.1.7.4.0
Is this true? I just can audit operations done to tables but not know what specific rows were affected.
Thank you.
Javier Fernandez

Depending on the specifics of the conversation and what type of audit requirement level is involved you were told wrong. See the DBA Administration manual chapter on auditing. However, the row level auditing performed via the native audit command will only tell you what rows were affected by whom and not what the data looked like.
For detailed row level data auditing you need to use table triggers to capture change data history.
HTH -- Mark D Powell --

Similar Messages

  • How to insert a row in oracle

    how to insert a row in oracle if we have three colums all are number datatype i want one of the column blank;

    Hi,
    James has replied to your question ..
    you seem to be new to sql
    just adding to it for you information.. that in this case col2 will have NULL value.
    I suggest you may please read the startup docs... They shall help you to unserdstand the sql better.
    http://www.w3schools.com/sql/default.asp
    Regards

  • Can i  use Oracle Database Audit Vault and Oracle Database Firewall on Solaris?

    Can i  use Oracle Database Audit Vault and Oracle Database Firewall on Solaris?

    4195bee8-4db0-4799-a674-18f89aa500cb wrote:
    i dont have access to My Oracle Support can u send text or html of document please?
    Moderator Action:
    No they cannot send you a document that is available only to those with access to MOS.
    That would violate the conditions of having such service contract credentials.
    Asking someone to violate such privileges is a serious offense and could get that other person's organization banned from all support and all their support contracts cancelled.
    Your post is locked.
    Your duplicate post that you placed into the Audit Vault forum space has been removed (it had no responses).
    This thread which you had placed in the Solaris 10 forum space is moved to the Audit Vault forum space.
    That's the proper location for Audit Vault questions.

  • Auto increment rows in Oracle

    Hi..How does one define an autoincrement row in oracle.In SQL Server they use IDENTITY ..
    Thanks for the help.

    You use a sequence and select the nextval when you do an insert.

  • Select 10000 rows from Oracle in shortest way

    Looking for a good desicions for trasfering more than 10000 rows from
    oracle to mysql using only jdbc. Connect is mostly slow about 1 row in
    a second, rights on oracle are just for select, update, insert
    operations. I think if I can devide 10000 rows in 10 parts and transfer
    them in concurent threads and connections. Any suggestion can help me
    to solve this problem.

    See java.sql.Statement.setFetchSize(), e.g.I'm not sure that setFetchSize will have any impact on your performance. It is mostly a suggestion to the JDBC driver, and while in theory the suggestion may help, in practice I have not seen any signficant benefit when using Oracle.
    To test the speed of your fetch, try issuing your select, then loop through the resultset, getting all the columns, just don't do anything with them. You could try changing the fetchSize to see if it does have an impact in your specific architecture.
    Now that you know how fast you can 'get' all the rows, how much different is it then the 1 second per row that you are seeing when selecting and inserting (I'm assuming you haven't done this yet, sorry if you already have)?
    Assuming that you can select all rows in less then the 1 second per row in your original test; there are several things you can do to increase the speed of inserts. Try using a PreparedStatement if you are not already using one . Try using the .addBatch() and .executeBatch(). You can try changing the count of rows that are inserted on each executeBatch() command.
    If all your inserts are inserting into a single table, then I don't think multiple threads will help you, and may in fact hurt you because you could run into locking issues in the mySQL database. If you are inserting into multiple tables, then it is possible that multi-threading, done correctly, may provide some increase in overall speed.
    Oracle can be accessed with 3 different JDBC drivers. If you are using Oracle 8i or 9i, then try using the OCI8 driver instead of the thin driver. The OCI8 driver may provide some performance benefits when doing mass inserts in the older versions of Oracle. Do not use the JDBC-ODBC bridge as that will provide the worst performance.
    If I was going to move data between two different databases, and the vendor did not provide a utility to do that specifically then I would try and use the 1st db vendors unload utility to unload into a text file, and the 2nd db vendors load utility to load from that text file. These utilities have been optimized for speed far and above anything that will ever be available to you as a Java programmer using JDBC. That isn't always possible based on the architecture of your solution, but it is always preferrable.
    Best of luck to you.

  • Insert new row into oracle databse through application module usng ADF Form

    I am using Jdeveloper 11.1.2. I am a beginner. I had tried in-built createInsert and commit method to add new row into oracle DB. For that, I had created ViewObject, VOImpl and AMImpl. Then, I created to jsf page. On first page, I dragged and dropped createInsert fn and VO(as ADF-readonly table) from DC Palette. and on second page, I dragged and dropped my VO(as ADF-Form) and commit (as Button) from DC palette. I created task-flow for it. when i click on createInsert button, i redirected to second page. where i filled all the required information on form. After filling, when i clicked commit button, i redirected to first page.(coz i created task flow to return first page after commit). New row is inserted into ADF-table, but when i checked my oracle DB, there was nothing added.
    Thus, I want to use custom method to insert row into OracleDB. So how can i get this? what are the steps required to do this? what programming codes required in Bean.java and AMImpl.java. Or is there any other steps to do this?
    please provide me detail steps and programming code for bean, amimpl or for VOImpl or EOImpl.
    please help me.

    User,
    To insert a row into the db you have to use a VO which is based on an EO (entity object). There is no java class (or impl) needed. You can all do this decoratively.
    All you have to think of is the PK of the new row. You can use Groovy for that (http://tompeez.wordpress.com/2011/09/02/using-groovy-expression-to-set-a-primary-key-with-a-sequence-number/)
    The rest is like you described it yourself. Drag the Vo onto the page, drop it as read only table, drag the createInsert onto the page as button and set up the navigation. On the second page drag the same VO onto the page and drop it as ADF Form. drag the commit operation onto the page as button and setup the navigation back to the first page.
    Timo

  • Columns to rows in oracle 10g

    Hi,
      I need the output from columns to rows in oracle 10g.
    this is my original output using some select query,
    select a.created_by,b.modified_by from created_tp a,modified_tp b where a.col_id=b.col_id.
    created_by       modified_by
    Siva                 Raja
    but i need this same output by rows like
    user--anything fine
    Siva
    Raja
    Thanks
    Siva

    Hi,
    select case l when 1 then a.created_by
    else b.modified end
    from created_tp a,modified_tp b, (select level l from dual connect by level <= 2)
    where a.col_id=b.col_id.

  • What is Audit Trail in Oracle HRMS?

    Hi
    Plz give me idea about Audit Trail in Oracle HRMS.

    Audit trail in HRMS is same as in any other module except the fact there is one extra process needs to be run in HRMS to make sure that it can handle date track data.
    Coming to its use, it all depends on what your business requirements are and how much performance hit you are ready to take.
    --Shiv                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Looking for different audit events in Oracle Linux

    Hi,
    I am looking for different audit events in Oracle Linux. I did lot of googling but could not find anything relevant. Can you please share some doc/info if you have.
    Thanks,
    Ravi

    You can probably spent all day searching in https://linux.oracle.com/documentation/ or http://docs.redhat.com/docs/en-US/index.html for information about this topic. Finding relevant information appears to be difficult.
    The information you are looking for is about configuring the Linux Audit subsystem. There are some rules examples in /usr/share/doc/audit*
    I found the following link in Google that seems to provide a reasonable overview:
    http://dgz.dyndns.org/mediawiki/index.php/%28RHEL%29_HOWTO_configure_the_auditing_of_the_system_%28auditd%29

  • What is audit command in oracle

    Hi all,
    what is audit command in oracle ,How can we use it .
    Kindly help me.
    thank you .
    Regards,
    P Prakash

    commands From the link : http://www.dba-oracle.com/t_audit_table_command.htm given below
    --Audit all Oracle user activity. 
    --This audits everything including DDL (create table), DML (inserts, updates, deletes) and login/logoff events:
         audit all by FRED by access;
    --Audit all Oracle user viewing activity:
       audit select table by FRED by access;
    --Audit all Oracle user data change activity:
       audit update table, delete table,
          insert table by FRED by access;
    --Audit all Oracle user viewing activity:
       audit execute procedure by FRED by access;

  • What to audit and how to manage the audit records in oracle 11gr2

    can anyone help me how to audit and manage the audit records in oracle 11gr2

    867726 wrote:
    can anyone help me how to audit and manage the audit records in oracle 11gr2
    Hi,
    I would recommend have a read this link for details http://download.oracle.com/docs/cd/E11882_01/server.112/e10575/tdpsg_auditing.htm#TDPSG50000
    Cheers

  • Display distinct rows from Oracle table without using "DISTINCT" keyword.

    How to retrieve distinct rows from oracle table without using 'DISTINCT' keyword in SQL?
    Thanks in advance.
    Mihir

    Welcome to the forum.
    Besides GROUP BY you can use UNIQUE instead of DISTINCT as well, but that's probably not wanted here ;) , and the ROW_NUMBER() analytic:
    SQL> create table t as
      2  select 1 col1 from dual union all
      3  select 1 from dual union all
      4  select 2 from dual union all
      5  select 3 from dual union all
      6  select 4 from dual union all
      7  select 4 from dual;
    Table created
    SQL> select col1 from t;
          COL1
             1
             1
             2
             3
             4
             4
    6 rows selected
    SQL> select distinct col1 from t;
          COL1
             1
             2
             3
             4
    SQL> select unique col1 from t;
          COL1
             1
             2
             3
             4
    SQL> select col1 from t group by col1;
          COL1
             1
             2
             3
             4
    SQL> select col1
      2  from ( select col1
      3         ,      row_number() over (partition by col1 order by col1) rn
      4         from   t
      5       )
      6  where rn=1;
          COL1
             1
             2
             3
             4

  • Connection pooling and auditing on an oracle database

    Integration of a weblogic application with an oracle backend,
    Connection pooling, and auditing ,2 conflicting requirements ?
    Problem statement :
    We are in the process of maintaining a legacy client server application where
    the client is
    written in PowerBuilder and the backend is using an Oracle database.
    Almost all business logic is implemented in stored procedures on the database.
    When working in client/server mode ,1 PowerBuilder User has a one-to-one relation
    with
    a connection(session) on the oracle database.
    It is a requirement that the database administrator must see the real user connected
    to the database
    and NOT some kind of superuser, therefore in the PowerBuilder app each user connects
    to the database
    with his own username.(Each user is configured on the database via a seperate
    powerbuilder security app).
    For the PowerBuilder app all is fine and this app can maintain conversional state(setting
    and
    reading of global variables in oracle packages).
    The management is pushing for web-based application where we will be using bea
    weblogic appserver(J2EE based).
    We have build an business app which is web-based and accessing the same oracle
    backend app as
    the PowerBuilder app is doing.
    The first version of this web-based app is using a custom build connector(based
    on JCA standard and
    derived from a template provided by the weblogic integration installation).
    This custom build connector is essentially a combination of a custom realm in
    weblogic terms
    and a degraded connection pool , where each web session(browser) has a one-to-one
    relation
    with the back end database.
    The reason that this custom connector is combining the security functionality
    and the pooling
    functionality , is because each user must be authenticated against the oracle
    database(security requirement)
    and NOT against a LDAP server, and we are using a statefull backend(oracle packages)
    which would make it
    difficult to reuse connections.
    A problem that surfaced while doing heavy loadtesting with the custom connector,
    is that sometimes connections are closed and new ones made in the midst of a transaction.
    If you imagine a scenario where a session bean creates a business entity ,and
    the session bean
    calls 1 entity bean for the header and 1 entity bean for the detail, then the
    header and detail
    must be created in the same transaction AND with the same connection(there is
    a parent-child relationship
    between header and detail enforced on the back end database via Primary and Foreing
    Keys).
    We have not yet found why weblogic is closing the connection!
    A second problem that we are experincing with the custom connector, is the use
    of CMP(container managed persistence)
    within entity beans.
    The J2EE developers state that the use of CMP decreases the develoment time and
    thus also maintenance costs.
    We have not yet found a way to integrate a custom connector with the CMP persistence
    scheme !
    In order to solve our loadtesting and CMP persistence problems i was asked to
    come up with a solution
    which should not use a custom connector,but use standard connection pools from
    weblogic.
    To resolve the authentication problem on weblogic i could make a custom realm
    which connects to the
    backend database with the username and password, and if the connection is ok ,
    i could consider this
    user as authenticated in weblogic.
    That still leaves me with the problem of auditing and pooling.
    If i were to use a standard connection pool,then all transaction made in the oracle
    database
    would be done by a pool user or super user, a solution which will be rejected
    by our local security officer,
    because you can not see which real user made a transaction in the database.
    I could still use the connection pool and in the application , advise the application
    developers
    to set an oracle package variable with the real user, then on arrival of the request
    in the database,
    the logic could use this package variable to set the transaction user.
    There are still problems with this approach :
    - The administrator of the database can still not see who is connected , he will
    only see the superuser connection.
    - This scheme can not be used when you want to use CMP persistence , since it
    is weblogic who will generate the code
    to access the database.
    I thought i had a solution when oracle provided us with a connection pool known
    as OracleOCIConnectionPool
    where there is a connection made by a superuser, but where sessions are multiplexed
    over this physical pipe with the real user.
    I can not seem to properly integrate this OCI connectionpool into weblogic.
    When using this pool , and we are coming into a bean (session or entity bean)
    weblogic is wrapping
    this pool with it's own internal Datasource and giving me back a connection of
    the superuser, but not one for the real user,
    thus setting me with my back to the wall again.
    I would appreciate if anyone had experienced the same problem to share a possible
    solution with us
    in order to satisfy all requirements(security,auditing,CMP).
    Many Thanks
    Blyau Gino
    [email protected]

    Hi Blyau,
    As Joe has already provided some technical advice,
    I'll try to say something on engineering process level.
    While migrating an application from one technology to
    other, like client-server to n-tier in you case, customers and
    stakeholders want to push into the new system as many old
    requirements as possible. This approach is AKA "we must
    have ALL of the features of the old system". Mostly it happens
    because they don't know what they want. Ad little understanding
    of abilities of the new technology, and you will get a requirement
    like the one you have in you hands.
    I think "DBA must see real user" is one of those. For this
    type of requirements it can make sense to try to drop it,
    or to understand its nature and suggest alternatives. In this
    particular case it can be a system that logs user names,
    login and logout times.
    Blind copying of old features into an incompatible new architecture
    may endanger the whole project and can result in its failure.
    Hope this helps.
    Regards,
    Slava Imeshev
    "Blyau Gino" <[email protected]> wrote in message
    news:[email protected]...
    >
    Integration of a weblogic application with an oracle backend,
    Connection pooling, and auditing ,2 conflicting requirements ?
    Problem statement :
    We are in the process of maintaining a legacy client server applicationwhere
    the client is
    written in PowerBuilder and the backend is using an Oracle database.
    Almost all business logic is implemented in stored procedures on thedatabase.
    When working in client/server mode ,1 PowerBuilder User has a one-to-onerelation
    with
    a connection(session) on the oracle database.
    It is a requirement that the database administrator must see the real userconnected
    to the database
    and NOT some kind of superuser, therefore in the PowerBuilder app eachuser connects
    to the database
    with his own username.(Each user is configured on the database via aseperate
    powerbuilder security app).
    For the PowerBuilder app all is fine and this app can maintainconversional state(setting
    and
    reading of global variables in oracle packages).
    The management is pushing for web-based application where we will be usingbea
    weblogic appserver(J2EE based).
    We have build an business app which is web-based and accessing the sameoracle
    backend app as
    the PowerBuilder app is doing.
    The first version of this web-based app is using a custom buildconnector(based
    on JCA standard and
    derived from a template provided by the weblogic integrationinstallation).
    This custom build connector is essentially a combination of a custom realmin
    weblogic terms
    and a degraded connection pool , where each web session(browser) has aone-to-one
    relation
    with the back end database.
    The reason that this custom connector is combining the securityfunctionality
    and the pooling
    functionality , is because each user must be authenticated against theoracle
    database(security requirement)
    and NOT against a LDAP server, and we are using a statefull backend(oraclepackages)
    which would make it
    difficult to reuse connections.
    A problem that surfaced while doing heavy loadtesting with the customconnector,
    >
    is that sometimes connections are closed and new ones made in the midst ofa transaction.
    If you imagine a scenario where a session bean creates a business entity,and
    the session bean
    calls 1 entity bean for the header and 1 entity bean for the detail, thenthe
    header and detail
    must be created in the same transaction AND with the same connection(thereis
    a parent-child relationship
    between header and detail enforced on the back end database via Primaryand Foreing
    Keys).
    We have not yet found why weblogic is closing the connection!
    A second problem that we are experincing with the custom connector, is theuse
    of CMP(container managed persistence)
    within entity beans.
    The J2EE developers state that the use of CMP decreases the develomenttime and
    thus also maintenance costs.
    We have not yet found a way to integrate a custom connector with the CMPpersistence
    scheme !
    In order to solve our loadtesting and CMP persistence problems i was askedto
    come up with a solution
    which should not use a custom connector,but use standard connection poolsfrom
    weblogic.
    To resolve the authentication problem on weblogic i could make a customrealm
    which connects to the
    backend database with the username and password, and if the connection isok ,
    i could consider this
    user as authenticated in weblogic.
    That still leaves me with the problem of auditing and pooling.
    If i were to use a standard connection pool,then all transaction made inthe oracle
    database
    would be done by a pool user or super user, a solution which will berejected
    by our local security officer,
    because you can not see which real user made a transaction in thedatabase.
    I could still use the connection pool and in the application , advise theapplication
    developers
    to set an oracle package variable with the real user, then on arrival ofthe request
    in the database,
    the logic could use this package variable to set the transaction user.
    There are still problems with this approach :
    - The administrator of the database can still not see who is connected ,he will
    only see the superuser connection.
    - This scheme can not be used when you want to use CMP persistence , sinceit
    is weblogic who will generate the code
    to access the database.
    I thought i had a solution when oracle provided us with a connection poolknown
    as OracleOCIConnectionPool
    where there is a connection made by a superuser, but where sessions aremultiplexed
    over this physical pipe with the real user.
    I can not seem to properly integrate this OCI connectionpool intoweblogic.
    When using this pool , and we are coming into a bean (session or entitybean)
    weblogic is wrapping
    this pool with it's own internal Datasource and giving me back aconnection of
    the superuser, but not one for the real user,
    thus setting me with my back to the wall again.
    I would appreciate if anyone had experienced the same problem to share apossible
    solution with us
    in order to satisfy all requirements(security,auditing,CMP).
    Many Thanks
    Blyau Gino
    [email protected]

  • How to delete duplicate rows in oracle and retaining last duplicate rows

    Hi,
    I'm having millions of records in the table .Some duplicate values/rows are inserted in it.
    I just want to delete duplicate rows but also want to retain the last duplicate row.
    For eg if one record is found three times ,i want to delete first and second record and retain
    the third one i.e the last inserted one.
    Regards
    Paramdeep Singh

    user13310594 wrote:
    Hi,
    I'm having millions of records in the table .Some duplicate values/rows are inserted in it.
    I just want to delete duplicate rows but also want to retain the last duplicate row.
    For eg if one record is found three times ,i want to delete first and second record and retain
    the third one i.e the last inserted one.Hi Paramdeep,
    To start with, since you do not wish to keep multiple rows with same values, why allow them to get inserted in the first place?
    Wouldn't it be easier to block duplicate rows from inserting by creating a Unique constraint on Column(s) that define a row as duplicate, then rather deleting duplicate rows periodically?
    For deleting duplicate rows, there are N number of techniques available. Always remember, you need to have a rigid criteria that marks row as duplicate.
    [url http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:15258974323143]this is one recomended by tom for large tables.
    Vivek L

  • How can I limit the number of rows in Oracle?

    Hi All,
    I am using very complex query where I join 6 table to fetch data from database.
    I have requirement like fetching a first 10000 row and then fetching another records after 10000 and so on.
    I just want to know how to fetch a limited number of rows using sql query. Moreover, I also want to know how to calculate the total number of row (alternative of count method because I don't want to query the database twice because its affect the performance).
    Thanks in advance.
    Regards,
    Sunny

    sunny@oimnewbie wrote:
    Hi All,
    I am using very complex query where I join 6 table to fetch data from database.
    I have requirement like fetching a first 10000 row and then fetching another records after 10000 and so on.
    I just want to know how to fetch a limited number of rows using sql query. Moreover, I also want to know how to calculate the total number of row (alternative of count method because I don't want to query the database twice because its affect the performance).
    Thanks in advance.
    Regards,
    SunnyThis smells like a very fishy requirement based on a fundamental misunderstanding of how Oracle works. Could you explain why you want to arbitrarily limit the result set to 1000 rows? What will happen between that and getting the "next" 1000? What triggers getting the "next" 1000? and how do you define "next", since there is no ordering in a heap table.
    I suspect we can make that requirement go away be presenting a better approach to the real issue.

Maybe you are looking for

  • Issuance of material without availability of required qty. as on that date

    I had done GRN of 100 qty. with posting date 15.11.09. Now I am trying to book consumption of that material with posting date 01.11.09 and systme allows to do. As per MB5B, as on date stock on 01.11.09 is zero before booking of consumption and after

  • SQL (JDBC and JAVA)

    Hi I have have problem in generating a results from my SQL command. Apparently the query run successfully but it fails to oick up the data in the table for display. Please find the code below:- public class QueryTableModel extends AbstractTableModel

  • How can I watch the college BCS on my ipod60 if I already bought it

      Windows XP  

  • CostCenter Hierarchy selection in the Infopackage

    Hi Everyone, For CostCenter hierarchy, in the Infopackage Hierarchy Selection tab, I can able to find the Parent Node for loading, but there is no Child node available. Can anyone help on how to bring the child node into the Hierarchy selection tab,

  • Track not visible in CMS - urgent

    Hi , I am working on EJB -Webdynpro Dc projects. My application is working on production server , but i am not able to view track in CMS. what may be cause of this problem?? I haven't deleted track from CMS , still is not shown in CMS.Also when i am