Encrypting database



I have a feeling this is a common problem, so I want to hear from people
more knowledgable about how to go about it:

This is the requirement: some pieces of data in publically accessible
database needs to be hidden from (many) users that can normally read the
entire database, and be accessible by (several) privileged users.

My intent is to do it like this:

- create a random key (e.g. 128 random bits) & encrypt the data with
this key
- encrypt that key with passwords of users that have access to the data
(i.e. for X users, X copies of the above key would be encrypted
separately with users' keys and stored) Strengths of user passwords is a
separate and unrelated issue for this :)

I guess encrypting one piece of data (the master key) several times
independantly (but with a prepended salt) will make it somewhat easier
for brute-forcing, and make it much more vulnerable if one of users'
passwords is stolen.

Any suggestions or improvements on the plan?
.