phpMyAdmin阻止访问单个数据库

时间:2013-11-18 07:26:40

标签: mysql .htaccess phpmyadmin

我想在phpMyAdmin中限制对单个数据库的访问。这可能吗? 我正在制作一个将安装在客户端PC上的应用程序,并将在本地服务器上运行。我想限制其他人查看数据库和表。

或者可以通过.htaccess将数据库名称传递到URL -

http://localhost/phpmyadmin/#PMAURL-4:index.php?db=dbname&table=&server=1&target=&token=457a0c4ec42cbe72f72786efa1aaf530

2 个答案:

答案 0 :(得分:3)

我建议使用MySQL权限来限制用户查看其他数据库。为应用程序创建用户时,请不要选择任何全局权限(在创建/编辑用户时在第一个屏幕上)。如果您正在创建用户,您将返回到用户界面,您应该单击编辑权限(如果您正在编辑现有用户,只需向下滚动一下)。在用户的“编辑权限”页面中间,您将看到“特定于数据库的权限”。从下拉列表中选择您的数据库,然后在结果页面上编辑他们的权限。

这样,您将使用MySQL权限系统将用户限制为仅访问您希望他们使用的数据库。基于阻止phpMyAdmin URL的限制是不完整的并且给出了错误的安全感(因为SQL查询仍然可以访问其他数据库,显示其他数据库,甚至一些phpMyAdmin选项将允许用户与这些数据库交互),而不是提及当你阻止他们尝试的行动时发生的极端用户不友好性而没有解释原因(如果你根据URL重新编写或重定向会发生这种情况)。

答案 1 :(得分:1)

您可以将此规则置于phpmyadmin/.htaccess

之上来阻止它
RewriteEngine On

RewriteCond %{QUERY_STRING} (^|&)db=dbname(&|$) [NC]
RewriteRule ^ - [F]

但是,可能还有其他方法可以通过直接在MySQL数据库中更改用户权限来阻止对此数据库的访问。