Wednesday, July 15, 2009

PMDV: Lessons Learned

On Monday I "released" Version 0.1. Not only did I blog about it, I sent private emails to people I know asking them to take a look. I'm going to summarize the good and the bad here.

I had planned all along to put the objects in the SYS schema as Oracle treats it differently. By differently I mean that it's more secure than any other user/schema. You cannot create objects in the schema as another user, even with DBA privileges. Same goes for executing code, you need an explicit GRANT from SYS in order to run a package. I can't think of one off the top of my head, but around on or after 9i, DBMS_SESSION needed to be granted explicitly to users.

What's the lesson learned? Well, if you create objects in the SYS schema you now have an unsupported database. Yikes. I don't want that to happen and I will be updating the instructions tonight to reflect that (not that anyone has gone and thrown it in production yet).

What's in a Name?
Poor Man's Data Vault was not the best choice of names. I knew that all along really, but stuck with it just because. Someone suggested that the general concept might be related a bit more to Audit Vault; my only exposure to it was at COLLABORATE.

If there are any good ideas out there, let them fly. The only constraint? You have to use the letters P, M, D and V. Why? Because I've prefixed everything with that. :)

Documentation is hard, but I tried to get down as much as possible on the wiki. A friend and former colleague (twice), told me it sucked. It wasn't very descriptive or clear as to the purpose. I don't think it sucked, but it wasn't good or even great. Mediocre maybe?

Reason for Being
Maybe writing software is hard? Not the coding part necessarily, all the "extraneous" stuff. Documentation. User Expectations. Documentation. Testing (what?). Documentation. Critiques.

Despite the "smallness" of the project, I have a better appreciation for what Jake talks about over at the AppsLab. I can only imagine what it's like doing it at that scale.

Final Thoughts
I think I will continue on with the project.

I believe the goals have changed a bit so I'll need to adjust. Actually, I'll need to refactor my goals.

I will try to use the criticism wisely and allow that the help shape the new goals.

I'll have to change the target audience...well, define one. I had bigger shops (multiple DBAs) in mind initially or a place that needed to be SOX compliant. Maybe it should be small or medium size shops? I don't know.

Don't be afraid to leave comments, good and bad.


neo said...

It looks very interesting so far and will be useful in my environment.
I'm also interested in the apex application that sits on top of the tables, but did not see that code.
Is the apex code available ?

SydOracle said...

Poor Man's Database Vault
is the obvious alternative for PMDV.
Defender is another cool 'D' word. Can't think of much for the V though.
Poor Man's Defending Valkyrie ?

oraclenerd said...


I've updated the file in source control but I haven't packaged it all yet.

You can get the latest from here.

I'll be wrapping up the next version in the next week or two and I'll include the apex app and instructions for installation in there.

oraclenerd said...


Poor Man's Dream Vacation?

Poor Man, Defender of Venus?

Poor Man Dabbling Voraciously?

Jake said...

I may have missed this, but what license are you using for PMDV?

oraclenerd said...

I like this one:

Unfortunately Google doesn't offer that one. It appears as I chose this one originally:

Jake said...

Lulz, I don't suppose Google would go that route. You could do a CC license, they have software ones too.

Noons said...

People are from Mars,
Developers are from Venus? (PMDV)
(g,d&r, vvf)

oraclenerd said...


as long as we can make it DBA/Developers (or even duhvelopers), I'm in.

neo said...

pmdv = Proactive Migration Database Validator ?

oraclenerd said...


me likey!