dbTalk Databases Forums  

Auditing program

comp.databases.pick comp.databases.pick


Discuss Auditing program in the comp.databases.pick forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Chandru Murthi
 
Posts: n/a

Default Auditing program - 11-17-2006 , 08:03 AM






Just curious about building an audit program (a generalized one for the
tool.) In looking over what I did for Forge, it would update the audit
record on every data change. This seems overkill, and am definitely leaning
towards comparing old vs new recs. and updating the audit file at filesave
(or delete) time. Potential problems:

1- How to deal with insertion/deletion of a multivalue line, since clearly I
can't just compare the two mv fields as I'll wind up with a Lot of spurious
changes. I think I can keep track of Ins/Del by some of signal catcher, but
am still befuddled.
2- If user changes a field from A to B, then back to A, is it a change?
(tree falls in forest type question). Forge would record 2 changes;
recording at Filesave time would record none. Can this be a problem in the
post Sarbanes-Oxley world (not that I care, really, just to show I'm up with
the jargon.)
3- Finally, Forge would keep a single discrete stamped record for each
session. Since nowadays very large records are not the problem they used to
be, am leaning towards mv set, say attribute#,old,new,timedate or somesuch.
This is easier for Audit listings (one record per key) but any
disadvantages?

Any thoughts appreciated.

Chandru Murthi



Reply With Quote
  #2  
Old   
Excalibur
 
Posts: n/a

Default Re: Auditing program - 11-17-2006 , 04:25 PM






Hi Chandru
I made major changes to our system a couple of years ago for dear old sox so
we have some solid experience of the results.
Two things have become obvious.
Records that have inherent audit trails do not need a separate audit record.
For example a debtors balance control has the transaction detail files to
support it.
Second fast moving data should be separated from static data and probably
treated differently. See example above.
Of course if some clown has embedded the transactions in the master record
one has a monumental problem.
Further comments embedded.

"Chandru Murthi" <cmur_xyz_thi (AT) xyz_seeinggree_xyz_n (DOT) net> wrote

Quote:
Just curious about building an audit program (a generalized one for the
tool.) In looking over what I did for Forge, it would update the audit
record on every data change. This seems overkill, and am definitely
leaning
towards comparing old vs new recs. and updating the audit file at filesave
(or delete) time.
We keep track of program and operator doing the change, time and date and
sequence of change. Yes good old pessimistic locking at point of update.
This was required by the Exxon auditors so doing it at file save is out of
the question. The cost of disk being low we kept the entire previous
record, however we provided a program to just display or print the
variances. Ahah good ideas come unstuck on big records. If we have a
multivalued field or better still a multi sub valued field that grows one
can still have a pretty big record to look at even though just the first or
last value has been inserted so ideally we need to be more specific on
particular files in the analysis program.

Potential problems:
Quote:
1- How to deal with insertion/deletion of a multivalue line, since clearly
I
can't just compare the two mv fields as I'll wind up with a Lot of
spurious
changes. I think I can keep track of Ins/Del by some of signal catcher,
but
am still befuddled.
see above
2- If user changes a field from A to B, then back to A, is it a change?
(tree falls in forest type question). Forge would record 2 changes;
recording at Filesave time would record none. Can this be a problem in the
post Sarbanes-Oxley world (not that I care, really, just to show I'm up
with
the jargon.)
Yes this is a major defalcation problem. For example a service station in
Sydney had good throughput on a margin known down to the fourth decimal of a
dollar, everything balanced, tank dips perfect etc. However the profit was
not there! Change analysis was installed and all became clear. At 2am the
night operator changed the price and all his mates filled up their cars (
they could really afford some long spins up country this way) then he
changed it back again.

Quote:
3- Finally, Forge would keep a single discrete stamped record for each
session. Since nowadays very large records are not the problem they used
to
be, am leaning towards mv set, say attribute#,old,new,timedate or
somesuch.
This is easier for Audit listings (one record per key) but any
disadvantages?
I would stick with the one record per change and sort by key when required.
I believe that this is the only way that one can easily and accurately track
the sequence of changes.
Quote:
Any thoughts appreciated.

Chandru Murthi
I look forward to further comments as I will happily pinch any good ideas
and I know we do not have the complete answer yet.
Peter McMurray




Reply With Quote
  #3  
Old   
Chandru Murthi
 
Posts: n/a

Default Re: Auditing program - 11-20-2006 , 10:11 AM



"Excalibur" <excalibur21 (AT) bigpond (DOT) com> wrote

Quote:
Hi Chandru
I made major changes to our system a couple of years ago for dear old sox
so
we have some solid experience of the results.
Two things have become obvious.
Records that have inherent audit trails do not need a separate audit
record.
For example a debtors balance control has the transaction detail files to
support it.
Second fast moving data should be separated from static data and probably
treated differently. See example above.
Of course if some clown has embedded the transactions in the master record
one has a monumental problem.
Further comments embedded.

"Chandru Murthi" <cmur_xyz_thi (AT) xyz_seeinggree_xyz_n (DOT) net> wrote in message
news:Oij7h.4329$fk2.2804 (AT) trndny02 (DOT) ..
Just curious about building an audit program (a generalized one for the
tool.) In looking over what I did for Forge, it would update the audit
record on every data change. This seems overkill, and am definitely
leaning
towards comparing old vs new recs. and updating the audit file at
filesave
(or delete) time.

We keep track of program and operator doing the change, time and date and
sequence of change. Yes good old pessimistic locking at point of update.
This was required by the Exxon auditors so doing it at file save is out of
the question. The cost of disk being low we kept the entire previous
record, however we provided a program to just display or print the
variances. Ahah good ideas come unstuck on big records. If we have a
multivalued field or better still a multi sub valued field that grows one
can still have a pretty big record to look at even though just the first
or
last value has been inserted so ideally we need to be more specific on
particular files in the analysis program.
One clarification..I meant "when you save (file) the record)", did you
think I meant "when you do a filesave?" because otherwise I don't see the
auditor's issue.

I think I have a way around the mv ins/del issue, will have to try it.

Thanks.

Chandru

Quote:
Potential problems:

1- How to deal with insertion/deletion of a multivalue line, since
clearly
I
can't just compare the two mv fields as I'll wind up with a Lot of
spurious
changes. I think I can keep track of Ins/Del by some of signal catcher,
but
am still befuddled.
see above
2- If user changes a field from A to B, then back to A, is it a change?
(tree falls in forest type question). Forge would record 2 changes;
recording at Filesave time would record none. Can this be a problem in
the
post Sarbanes-Oxley world (not that I care, really, just to show I'm up
with
the jargon.)
Yes this is a major defalcation problem. For example a service station in
Sydney had good throughput on a margin known down to the fourth decimal of
a
dollar, everything balanced, tank dips perfect etc. However the profit
was
not there! Change analysis was installed and all became clear. At 2am
the
night operator changed the price and all his mates filled up their cars (
they could really afford some long spins up country this way) then he
changed it back again.

3- Finally, Forge would keep a single discrete stamped record for each
session. Since nowadays very large records are not the problem they used
to
be, am leaning towards mv set, say attribute#,old,new,timedate or
somesuch.
This is easier for Audit listings (one record per key) but any
disadvantages?
I would stick with the one record per change and sort by key when
required.
I believe that this is the only way that one can easily and accurately
track
the sequence of changes.

Any thoughts appreciated.

Chandru Murthi
I look forward to further comments as I will happily pinch any good ideas
and I know we do not have the complete answer yet.
Peter McMurray





Reply With Quote
  #4  
Old   
Excalibur
 
Posts: n/a

Default Re: Auditing program - 11-20-2006 , 04:34 PM



Hi Chandru
I thought you were going for Filesave time. Sorry about the confusion.
Definitely audit must happen at time of original writing of record. This
does toss in a problem of what happens to one's beautiful sequential audit
record if a Transaction fails but the audit count has already been updated
by another process.

Peter McMurray
"Chandru Murthi" <cmur_xyz_thi (AT) xyz_seeinggree_xyz_n (DOT) net> wrote

Quote:
"Excalibur" <excalibur21 (AT) bigpond (DOT) com> wrote in message
news:HFq7h.67785$rP1.3770 (AT) news-server (DOT) bigpond.net.au...
Hi Chandru
I made major changes to our system a couple of years ago for dear old
sox
so
we have some solid experience of the results.
Two things have become obvious.
Records that have inherent audit trails do not need a separate audit
record.
For example a debtors balance control has the transaction detail files
to
support it.
Second fast moving data should be separated from static data and
probably
treated differently. See example above.
Of course if some clown has embedded the transactions in the master
record
one has a monumental problem.
Further comments embedded.

"Chandru Murthi" <cmur_xyz_thi (AT) xyz_seeinggree_xyz_n (DOT) net> wrote in
message
news:Oij7h.4329$fk2.2804 (AT) trndny02 (DOT) ..
Just curious about building an audit program (a generalized one for the
tool.) In looking over what I did for Forge, it would update the audit
record on every data change. This seems overkill, and am definitely
leaning
towards comparing old vs new recs. and updating the audit file at
filesave
(or delete) time.

We keep track of program and operator doing the change, time and date
and
sequence of change. Yes good old pessimistic locking at point of
update.
This was required by the Exxon auditors so doing it at file save is out
of
the question. The cost of disk being low we kept the entire previous
record, however we provided a program to just display or print the
variances. Ahah good ideas come unstuck on big records. If we have a
multivalued field or better still a multi sub valued field that grows
one
can still have a pretty big record to look at even though just the first
or
last value has been inserted so ideally we need to be more specific on
particular files in the analysis program.

One clarification..I meant "when you save (file) the record)", did you
think I meant "when you do a filesave?" because otherwise I don't see the
auditor's issue.

I think I have a way around the mv ins/del issue, will have to try it.

Thanks.

Chandru

Potential problems:

1- How to deal with insertion/deletion of a multivalue line, since
clearly
I
can't just compare the two mv fields as I'll wind up with a Lot of
spurious
changes. I think I can keep track of Ins/Del by some of signal catcher,
but
am still befuddled.
see above
2- If user changes a field from A to B, then back to A, is it a change?
(tree falls in forest type question). Forge would record 2 changes;
recording at Filesave time would record none. Can this be a problem in
the
post Sarbanes-Oxley world (not that I care, really, just to show I'm up
with
the jargon.)
Yes this is a major defalcation problem. For example a service station
in
Sydney had good throughput on a margin known down to the fourth decimal
of
a
dollar, everything balanced, tank dips perfect etc. However the profit
was
not there! Change analysis was installed and all became clear. At 2am
the
night operator changed the price and all his mates filled up their cars
(
they could really afford some long spins up country this way) then he
changed it back again.

3- Finally, Forge would keep a single discrete stamped record for each
session. Since nowadays very large records are not the problem they
used
to
be, am leaning towards mv set, say attribute#,old,new,timedate or
somesuch.
This is easier for Audit listings (one record per key) but any
disadvantages?
I would stick with the one record per change and sort by key when
required.
I believe that this is the only way that one can easily and accurately
track
the sequence of changes.

Any thoughts appreciated.

Chandru Murthi
I look forward to further comments as I will happily pinch any good
ideas
and I know we do not have the complete answer yet.
Peter McMurray







Reply With Quote
  #5  
Old   
ddspell-m3
 
Posts: n/a

Default Re: Auditing program - 12-13-2006 , 06:14 AM




Excalibur wrote:
<snip>
Quote:
the question. The cost of disk being low we kept the entire previous
record, however we provided a program to just display or print the
variances. Ahah good ideas come unstuck on big records. If we have a
multivalued field or better still a multi sub valued field that grows one
can still have a pretty big record to look at even though just the first or
last value has been inserted so ideally we need to be more specific on
particular files in the analysis program.
snip

I like this approach, but what are you using for your record ID?

Is it the audit_record_ID with a sequential number appened after a
delimiter (i.e. audit_record_ID*sequence_number)?


Curious,
Danny



Reply With Quote
  #6  
Old   
Chandru Murthi
 
Posts: n/a

Default Re: Auditing program - 12-13-2006 , 10:36 AM



Personally I'd use sequence*id (or date*id) in case the id itself has
embedded * (quite likely imo)

Chandru
"ddspell-m3" <ddspell (AT) yahoo (DOT) com> wrote

Quote:
Excalibur wrote:
snip
the question. The cost of disk being low we kept the entire previous
record, however we provided a program to just display or print the
variances. Ahah good ideas come unstuck on big records. If we have a
multivalued field or better still a multi sub valued field that grows one
can still have a pretty big record to look at even though just the first
or
last value has been inserted so ideally we need to be more specific on
particular files in the analysis program.
snip

I like this approach, but what are you using for your record ID?

Is it the audit_record_ID with a sequential number appened after a
delimiter (i.e. audit_record_ID*sequence_number)?


Curious,
Danny




Reply With Quote
  #7  
Old   
Excalibur
 
Posts: n/a

Default Re: Auditing program - 12-13-2006 , 03:33 PM



Hi
The audit ID is a number from a master record that is updated atomically.
The true Id along with other data such as file name, operator, time etc is
stored in the control file record. SO the audit file is a deliberate
scramble of records from everywhere intended to muck up anyone fiddling with
it. All reports are generated from the control file.
It has proved useful in tracking who did what and roughly when - does anyone
actually check the system time, I update with one of the atomic clocks but
some users are beyond hope - the sequential id is the real winner.
The sort of thing that I saw many years ago on Reality was order entry clerk
has an order open, hits a problem, calls supervisor who brings up same
debtor in next room, who calls accountant who brings up same debtor. All
make changes and hit commit within 3 seconds, bingo scrambled record. I
believe I have that scenario well beaten with current programming techniques
(reaches for forehead) touch wood. Now I have to cover the clever devil
that changes discount rules, posts invoices, and changes them back again.
When the sole operator is having an affair with one of the drivers and both
meet at the casino, it is amazing that he gets all the large COD
deliveries - actual example from personal experience.
Peter McMurray
"ddspell-m3" <ddspell (AT) yahoo (DOT) com> wrote

Quote:
Excalibur wrote:
snip
the question. The cost of disk being low we kept the entire previous
record, however we provided a program to just display or print the
variances. Ahah good ideas come unstuck on big records. If we have a
multivalued field or better still a multi sub valued field that grows
one
can still have a pretty big record to look at even though just the first
or
last value has been inserted so ideally we need to be more specific on
particular files in the analysis program.
snip

I like this approach, but what are you using for your record ID?

Is it the audit_record_ID with a sequential number appened after a
delimiter (i.e. audit_record_ID*sequence_number)?


Curious,
Danny




Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.