I have a MySQL database that I want to encrypt with AES_ENCRYPT() and have to provide access to a variable and possibly changing number of users.
Is it possible to derive an encryption key based on a variable number of users such that each user can access the data with their unique private password, but no attacker can access the data without such a password?
The original process encrypted the database with a key held on the server. I proposed as one step better to do so with a shared key held by all users with access to the system, but not stored on the server.
This would be better but ideally each user would access the data with individual private keys such that
- Any given key(s) could be revoked
- New key(s) could be issued
- No access would be possible without a valid key
Is such a system possible?