1. What happens with data shared among a dynamic group of users? A temporary password could be saved and then re-encrypted for each one of them?
2. If a suer changes its password or certificate, all its records of the databse should be updated? In a cloud service or backup that could be expensive (unless a all the information and password travels back to the user and it is reencrypted)
3. In case an attacker breaks into the remote system or database: game over. He installs custom code there and waits that the user logs in again. Or exploits the client doing a personalized MITM for the DB.