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