Is it possible: Derived key based on variable number of private keys?
Yes it is possible and already in use in multiple way (LUKS for example). The way it works:


Have a master key that encrypts the whole data  
Append a header in front that contains the master key encrypted by the password you want
To add a password add a keyslot (master key encrypted by another password)
To revoke a password remove said keyslot (the user cannot decrypt the master key anymore)


A crude implementation could be that your put your db in a LUKS partition (it could be a file) and add or remove password as wanted.