Database listing / Databases showing

Hi all,

This is probably something very basic, but I really don't see how to accomplish it.

I have a MySQL server with multiple databases on it, with multiple users. Every user has full control over it's own databases and is denied access to the others.

However, when someone connects to the server, he/she can list all other databases on the system. Since these are clients, obviously, I do not want them to see the other databases.

Is there a way to prevent this?

Thanks,

Wim
LVL 1
WimmekeAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

kelfinkCommented:
According to: http://www.mysql.com/doc/S/H/SHOW_DATABASE_INFO.html ,

In version 4.02, a SHOW DATABASES permission will be necessary to show a database, unless the use has some other permission on that database.
0
WimmekeAuthor Commented:
I have version 4.1.2 but I cannot find this option anywhere. Thing is ... all users only have read-rights on their databases and no rights at all on other databases.

So I guess this means that the SHOW DATABASES permission is loaded by default when creating a database. I tried a revoke, but seems not to work.
0
vasan_srCommented:
u can set the permission in the mysql database.

mysql> show databases;
mysql> use mysql

This has 6 tables...wherein we can set the permissions.

regards
VasanS
0
Newly released Acronis True Image 2019

In announcing the release of the 15th Anniversary Edition of Acronis True Image 2019, the company revealed that its artificial intelligence-based anti-ransomware technology – stopped more than 200,000 ransomware attacks on 150,000 customers last year.

kelfinkCommented:
I meant mysql version 4.0.2.  Is there a beta of 4.1.2 available already, or are you talking about some other software?
0
WimmekeAuthor Commented:
Sorry, you're right. I gave you the version number of PHP instead of MySQL ... anyways, I have version 3.23.39 :-)

So I guess there's no way to accomplish this with my current version? Or is there?
0
drittichCommented:
I believe you can start MySQL with this option:

mysqld --safe-show-database

"With this option, the SHOW DATABASES command returns only those databases for which the user has some kind of privilege. From version 4.0.2 this option is deprecated and doesn't do anything (the option is enabled by default) as we now have the SHOW DATABASES privilege."
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
kelfinkCommented:
well done, drittich.  I only knew of the new privilege.  

Then again, my own databases only have one security user!
0
drittichCommented:
Yeah, I have never actually needed it either!
0
WimmekeAuthor Commented:
Sorry guys, forgot about this question :-$

I will close it now and award the point to drittich. This is indeed the solutions.

Thanks

Wim
0
philcartmellCommented:
Hi,

I am running mysql v4.0.12 and revoke show databases from x doesnt see to work. any ideas?
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
MySQL Server

From novice to tech pro — start learning today.