phpMyAdmin 用户名通配符在基于主机的身份验证中'%'



我已经阅读了第 4.6 节下 phpmyadmin.net 的常见问题解答,我可以使用 % 通配符来限制具有访问权限的用户。

4.6 如何使用基于主机的身份验证添加功能?

如果您有来自旧 .htaccess 文件的现有规则,您可以采用 它们并在"拒绝"/"允许"和"发件人"字符串之间添加一个用户名。 使用用户名通配符"%"将是一个主要的好处,如果 您的安装适合使用它。然后你可以添加那些 将行更新到$cfg["服务器"][$i]["允许拒绝"]["规则"] 数组。

现在,我想将访问权限限制为名称中具有特定前缀的用户,例如 123_% 并拒绝其他所有内容。

我尝试将以下内容添加到 config.inc.php 在"/* 服务器参数 */"下:

$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] = array(
'deny from all',
'allow 123_% from all',
);

还尝试了"拒绝所有百分比"或颠倒"拒绝,允许"顺序,但似乎没有任何效果。还是它只是不这样工作?

我相信你在技术上误解了这里的目的。%并不意味着与部分用户名一起使用,而是替换任何用户名。

因此,有效的规则如下:

'allow root from 127.0.0.1',  # allow root to only access from 127.0.0.1
'allow isaac from all',       # allow isaac access from any IP address
'allow % from 198.51.100.17', # allow any user to connect from 198.51.100.17

遗憾的是,当前的实现无法识别使用带有通配符的部分用户名匹配。我不认为这太难添加,所以如果它对你很重要,可能值得打开一个功能请求。

相关内容

最新更新