对/etc/phpmyadmin/config. inc. php所做的更改不会生效

biswetbf  于 2022-11-09  发布在  PHP
关注(0)|答案(1)|浏览(146)

我想将PhpMyAdmin配置为仅通过一个用户访问一个数据库。
我之前尝试过使用2013年的这个答案来限制通过.htaccess的访问,但没有成功:
phpMyAdmin Block Access to Single Database
我遂试着通过添加否认、允许规则来说明这一回答:
How do I restrict access to specific database user accounts in phpMyAdmin?
但是它也不起作用。我继续访问所有用户。我已经阅读了文档,并将config.inc.php中的行重写为

$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] = array(
'deny root from all',
'deny user1 from all',
'deny user2 from all',
'allow user3 from all',
);

其中user 1和user 2是要拒绝的用户,user 2是要允许的用户。但我仍然可以访问所有用户。因此,我只尝试
$cfg['Servers'][$i]['AllowDeny']['order'] = 'explicit';
这应该会阻止所有用户的访问,但我仍然可以访问所有用户.因此我认为/etc/phpmyadmin/config. inc. php正在以某种方式被覆盖,因为没有任何更改生效,但我不明白是怎么回事.
知道去哪儿查吗?

l0oc07j2

l0oc07j21#

看起来你允许访问所有用户,然后又试图限制一些用户,似乎有点混乱。

$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';

正确的模式应该是拒绝所有用户的访问,然后为特定用户提供显式访问

$cfg['Servers'][$i]['AllowDeny']['order'] = 'explicit';

请参阅官方文件https://docs.phpmyadmin.net/en/latest/config.html#cfg_Servers_AllowDeny_order
正确的配置应该如下所示

$cfg['Servers'][$i]['AllowDeny']['order'] = 'explicit';
$cfg['Servers'][$i]['AllowDeny']['rules'] = [
    'allow user3 from all'
];

希望它对你有用!

相关问题