damn it I was going about it all wrong
I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need to install it for each customer?
Since version 2.0.3, you can setup a central copy of phpMyAdmin for all your users. The development of this feature was kindly sponsored by NetCologne GmbH.
This requires a properly setup MySQL user management and phpMyAdmin's advanced authentication. phpMyAdmin performs these steps, when authenticating a user:
Select all entries from the mysql.user table where the username/password matches the challenging user. If no rows are returned, the authentication has failed. Otherwise, phpMyAdmin continues with step 2.
If the user's global Select_Priv is "N" (ie the user is not allowed to access all databases), phpMyAdmin searches the mysql.db table for entries with Select_Priv = "Y" belonging to the user. If no entries are found, the authentication has failed. Otherwise, phpMyAdmin shows all databases the user is allowed to view.
If the user's global Select_Priv is "Y", all databases in the system are shown.
This means that you need to add a user to the mysql database as following:
INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES ('localhost', 'foo', PASSWORD('bar'), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N')
INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES ('localhost', 'foo_db', 'foo', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '')
Then only the "foo_db" database will be displayed to user "foo".