Re: How to limit access to production data from non-production code?

From: Nic Clews (sendspamhere_at_[127.0.0.1)
Date: 01/22/04


Date: Thu, 22 Jan 2004 13:26:38 +0000

Colin Butcher wrote:
>
> Larry's giving you sound advice. Have separate development and production
> systems. Ruthlessly enforce the separation.
>
> Have a representative test environment, using copies of real data if need
> be - maybe even use the process to test the restore of yesterday's
> production backup.
>
> Never mix development, test and production environments. If things can go
> wrong - they will, usually when you least expect it or can least tolerate
> it.

I've a war story I've not recounted publicly before now. Things got done
differently after this. It's a few years ago too, not here.

Whilst we had a production and a development system for the main
applications, the development system typically was a 'lesser' system,
lower powered, and more importantly less disk space.

This let to a problem, the development system did not have enough space
for all the required development. So, as you've probably guessed, the
live system was used to provide a development area, with some clever
repointing of logicals in the same way we segregated multiple production
environments. This involved remapping to different group tables, the
names remained the same.

So there I was, testing completed. I was distracted (support call). Then
I returned to the task in hand, deleting the database for the next task.

You guessed, the production database went.

deleted... deleted... deleted... file open by another user... deleted...
deleted...

Immediately I 'phoned the application manager/owner, told him what had
happened, the processes then started to fall in a heap, so we stopped
the application (usual stop procedure, forced exit, stop/id) then
decided how to recover.

Fortunately, the database had a journalling file on another data area,
so we recovered the data from the last good backup, and allowed the
database to roll itself forwards. Transactions are paired over a number
of hours and the manager reckoned he'd lost about 2 or 3 transactions,
(out of several thousand per day) which he manually adjusted for after
database reconciliation.

In this case I was extremely lucky, an understanding (but annoyed)
application owner, an application capable of withstanding and recovering
from the damage inflicted at it, no time critical processing was
underway, and the recovery time was bearable, the most recent backup was
"nearline" (on a "backup disk" and tape recovery wasn't required), the
missing transactions could be reconstructed manually from the "other" of
the pair with an assumption. I wasn't disciplined for the events as I'd
taken appropriate actions, but the events and causes were examined
independently, and procedures and a physical separation was achieved of
the two environments (extra necessary hardware, now with justification).

One of the things introduced was the usage of _different_ accounts,
rather than repointing logicals, using ACL's, and just using a single
(privileged) account. Using a single account to seamlessly switch was a
prime cause. Perhaps it may be easy to argue that multiple accounts per
number of users is a security risk, but security also means keeping data
safe from accidental loss or destruction.

-- 
Regards, Nic Clews a.k.a. Mr. CP Charges, CSC Computer Sciences
nclews at csc dot com


Relevant Pages

  • ORA-01113_ file 1 needs media recovery
    ... the database can be mounted but with this error as ... Oracle Server Manager Release 2.3.4.0.0 - Production ... file 1 needs media recovery ...
    (comp.databases.oracle.server)
  • ORA-01113_ file 1 needs media recovery
    ... the database can be mounted but with this ... Oracle Server Manager Release 2.3.4.0.0 - Production ... file 1 needs media recovery ...
    (comp.databases.oracle.misc)
  • Re: Deployment in 2.0 - How To Not Overwrite web.config
    ... ' request connection string 1 here ... I have a web app and three environments on three servers: ... > server and then once tested to our production server. ... > enviroment connects to different databases ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: read trans log
    ... You can read the log file only if your database is set in "FULL" recovery ... cleared up the data in some tables from production. ...
    (microsoft.public.sqlserver.programming)
  • Oracle DBA, Denver, Branta Group Contract
    ... Oracle DBA, Denver, Branta Group Contract ... sites focusing on database performance and availability. ... first and second tier resolution of production issues. ... procedures supporting a mission critical 24x7 production environment ...
    (comp.databases.oracle.marketplace)

Quantcast