开发者

How to stop mySQL users calling "show" functions

How can we p开发者_StackOverflow中文版revent the the query "show databases;" or "show tables;" in mysql for any non root user.Is this possible.If so please provide an example or appropriate link...indicating this..

Thanks in advance........


Non-root user sees all databases only if he has global rights (like GRANT something ON *.*). So the solution is to always grant everything ON databasename.* , never global.


I would give show_db_priv a try:

http://dev.mysql.com/doc/refman/5.1/en/grant-table-structure.html

But, there have been reports of this not working. See this bug entry:

http://bugs.mysql.com/bug.php?id=1048


Can't get you a link right now, but this is a permissions issue at heart and control over access to the root user.

On something like phpmyadmin or some other tool, you want to revoke permissions on these two databases (and any others) to all users except for your root admin. If you're on a shared server where you typically get one user for your one database you'll need to talk to your host.

My general rule (if I've got permissions control over the db server) is to create a new user for a specific database or (subset of tables) and always use that user only from the web or other application that talks to the db. It's more setup initially, but once you've got it setup you've got much more control and know that one application can't interfere with another.

Root access is simply not allowed for application use - its for maintenance only.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜