Is there a Storage-Engine/DB that logs all changes and allows selective rollback of specific changes?
Here's the problem that I'm struggling with, and that I think you will find when attempting to find this type of system. (Particularly when it goes to requirements 7 &amp; 8.)

Let's say that you have User A who changes a value from 1 to 2.  Then User B changes it from 2 to 26.  If you attempt to rollback User A's value, what do you roll it back to?  Do you change it back to 1 or do you leave it at 26?  Do you do some strange business logic and make it 25?

There are several possible scenarios, but ultimately, there is no generic way of handling this type of data.  If you don't roll back, then you fail to satisfy Rule 8.  If you do roll back, then you fail to satisfy Rule 7 (allowing ONLY changes from a certain user to roll back).  If you do some crazy math rules, then each rule will have to be very specific to the column that modify.

I don't think that there are any databases that can handle this on a general basis.  It is possible to roll back on a point-in-time basis, but that completely breaks Rule 7 (allowing you to roll back changes from a certain group).

Outside of a custom-written, specific use application, I don't see how it's possible to implement 7 &amp; 8 on a generic database system.