2013-03-01 82 views
0

我希望有人可以帮我一个MySQL/phpMyAdmin问题。 (我甚至不知道是否有可能......)从用户隐藏数据库,同时允许用户查询它

这是问题: 我有2个数据库:DB1和DB2 我有一个用户DB1user。此用户可以完全访问DB1,并可以选择访问DB2中的特定表。 我希望有一种方法可以从用户隐藏DB2。即当用户键入'SHOW DATABASES;'时,我希望该用户只能看到DB1。但是,当用户键入'SELECT * FROM DB2.TABLE1;'时,他应该看到他的查询结果。

这可能吗?可行?

感谢您的帮助!

+1

如果用户具有对DB2的选择访问权限并且权限设置正确,那么让用户看到DB2有什么坏处?他们只能访问/修改他们有权访问的内容。 – War10ck 2013-03-01 17:29:01

+0

的确如此。在我的情况下,用户有限制访问的数据库是_phpmyadmin_这是一个管家数据库,我不一定希望用户知道它的存在,因为我不太清楚这个管家数据库真的存储了什么...... – dimaj 2013-03-01 18:00:20

+0

I认为你的答案没有答案,只要你愿意!最好的办法是在虚拟主机中分离数据库,每个客户端都在你自己的地方。 PhpMyAdmin不是管理这种类型os问题的最佳工具,否则你有mysql命令行,我认为要实现你想要的更好! – B4NZ41 2013-07-20 21:21:38

回答

0

这两个查询将用户限制到一个单一的数据库,这样用户只能看到,更新,并从单一的数据库中删除表:

替换用户与MySQL用户名

更换USERDATABASE与您希望用户有权访问的单个MySQL数据库。

REVOKE ALL PRIVILEGES,GRANT OPTION from USER; 

GRANT ALL ON USERDATABASE.* TO 'USER'; 
+0

但是这会限制用户只能访问他的数据库...... phpMyAdmin有一个名为_phpmyadmin_的新数据库,其中包含一些家务管理信息和其他与phpMyAdmin相关的内容。只有当用户通过phpMyAdmin接口登录时,才会对该数据库进行查询。用户甚至不应该知道这个数据库,因此不应该在他有权访问的数据库列表中看到它。然而,如果用户确实知道_phpmyadmin_,他应该能够针对它运行查询。 – dimaj 2013-03-01 17:44:24

0

你有没有尝试使用在phpMyAdmin特权页面,您可以创建用户并限制其特定的数据库以及操作的访问?

+0

是的。这就是我现在所拥有的。用户可以完全访问他的数据库并选择访问phpmyadmin。在数据库部分(左侧),我看到3个数据库可见:DB1,information_schema和phmyadmin。我想在保留用户对phpmyadmin的访问权限的同时只看到BD1。 – dimaj 2013-03-01 17:43:15

相关问题