Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
如何在mysql中设置数据库访问白名单_创想鸟

如何在mysql中设置数据库访问白名单

通过设置MySQL用户表的Host字段并配合防火墙实现访问白名单:1. 创建指定IP的用户如’myuser’@’192.168.1.100’;2. 避免使用’%’通配符;3. 执行FLUSH PRIVILEGES刷新权限;4. 使用iptables或ufw限制3306端口访问。

如何在mysql中设置数据库访问白名单

在 MySQL 中实现数据库访问白名单,主要是通过控制用户的主机访问权限来限制哪些 IP 或主机可以连接到数据库。MySQL 本身没有“白名单”这个图形化功能,但可以通过其用户权限系统达到同样的效果。

1. 使用 MySQL 用户权限表设置访问来源

MySQL 的 mysql.user 表中有一个 Host 字段,用于指定用户可以从哪个主机连接。你可以通过精确设置 Host 值来实现白名单机制。

例如,只允许来自特定 IP 的用户访问:

CREATE USER 'myuser'@'192.168.1.100' IDENTIFIED BY 'secure_password';GRANT SELECT, INSERT ON mydb.* TO 'myuser'@'192.168.1.100';FLUSH PRIVILEGES;

上面的语句表示:只有从 IP 192.168.1.100 发起的连接才能使用用户 myuser 登录。

如果要允许多个指定 IP,重复创建对应 Host 的用户即可:

CREATE USER 'myuser'@'192.168.1.101' IDENTIFIED BY 'secure_password';GRANT SELECT, INSERT ON mydb.* TO 'myuser'@'192.168.1.101';

2. 避免使用通配符 %

默认情况下,很多配置会使用 ‘user’@’%’ 允许从任意主机连接,这相当于开放了所有 IP,不符合白名单要求。

应避免以下语句(除非明确需要):

CREATE USER 'myuser'@'%' IDENTIFIED BY 'password'; -- 不推荐,开放所有IP

若已存在此类用户,建议删除或修改为具体 IP:

绘蛙AI修图 绘蛙AI修图

绘蛙平台AI修图工具,支持手脚修复、商品重绘、AI扩图、AI换色

绘蛙AI修图 279 查看详情 绘蛙AI修图

DROP USER 'myuser'@'%';-- 然后创建具体 IP 的用户

3. 刷新权限并测试

每次修改用户或权限后,必须执行:

FLUSH PRIVILEGES;

确保权限立即生效。

可以通过尝试从不同 IP 连接来验证是否只有白名单中的 IP 可以登录。

4. 结合操作系统或防火墙加强白名单

MySQL 权限控制是第一道防线,建议结合系统层面的防火墙进一步加固。

例如,在 Linux 上使用 iptablesufw 限制只有特定 IP 访问 3306 端口:

# 使用 iptablesiptables -A INPUT -p tcp --dport 3306 -s 192.168.1.100 -j ACCEPTiptables -A INPUT -p tcp --dport 3306 -j DROP

或使用 ufw

ufw allow from 192.168.1.100 to any port 3306ufw deny 3306

这样即使 MySQL 配置出错,外部也无法直接连接。

基本上就这些。通过合理设置 MySQL 用户的 Host 字段,并配合系统防火墙,就能有效实现数据库访问白名单。关键是避免使用 % 通配符,只开放必要的 IP。不复杂但容易忽略细节。

以上就是如何在mysql中设置数据库访问白名单的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/715348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
CNCS最富玩家宣布退坑:500万蒸发 对V社失望透顶
上一篇 2025年11月24日 12:20:01
谷歌浏览器收藏夹同步延迟怎么办
下一篇 2025年11月24日 12:20:02

相关推荐

发表回复

登录后才能评论
关注微信