In order to make a live database that encrypts it'sits data, the database itself would have to have access to the keys. By that token, any admin could su into the account and find them. Your concerns are valid.
Your idea of having the user present a secure key (RSA for example) if you have them do it over an SSH or SSL protected connection is not a bad idea. @Eric G mentioned Mylar in the comments below which does this type of thing, and more. It would be well worth examination.
If instead of encrypting the database, you encrypt the data before it gets entered into the database, then you would have a different possibility -- this is meant as a possible alternative only:
The data be encrypted before posting, and decrypted by a client program afterwards. The database would not be encrypted, only the data within it.
...or for the truly security paranoid-- do both: database encryption and data encryption, each with different methods.
More is described and discussed below in comments.