首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MySQL 查找允许任意 IP 访问的账号:user 表 Host 字段 '%' 标识

     編輯:程式設計綜合問答

核心查询

SELECT User, Host, authentication_string 
FROM mysql.user 
WHERE Host = '%';

结果解读

Host 值含义风险等级
%任意主机 (通配符)🔴 高危
localhost / 127.0.0.1 / ::1仅本地回环🟢 安全
192.168.1.%特定网段🟡 中危
具体 IP/主机名单主机🟢 安全

安全加固操作

-- 1. 修改为具体 IP
RENAME USER 'risk_user'@'%' TO 'risk_user'@'192.168.1.100';

-- 2. 或删除高危账号
DROP USER 'risk_user'@'%';

-- 3. 创建受限账号
CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY 'strong_pass';
GRANT SELECT, INSERT, UPDATE ON app_db.* TO 'app_user'@'192.168.1.%';
FLUSH PRIVILEGES;

自动化巡检脚本

#!/bin/bash
# check_wildcard_users.sh
mysql -N -e "SELECT CONCAT('\"', User, '\"@\"', Host, '\"') FROM mysql.user WHERE Host = '%';" | \
while read account; do
    echo "[WARNING] 通配符主机账号: $account"
    # 可集成告警: 发送邮件/钉钉/企业微信
done

最佳实践

  1. 定期审计 mysql.user 表
  2. 应用账号遵循最小权限原则
  3. 生产环境禁用 % 主机账号
  4. 使用 SSL 连接强制加密
  5. 启用审计插件记录登录尝试
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved