首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

全新 MySQL 安裝安全加固指南:Root 密碼、匿名用戶、權限收斂

     編輯:MySQL 綜合教學

MySQL 初始化後必做的 3 步安全加固:設 Root 密碼、移除匿名用戶、重載權限表

全新安裝的 MySQL 預設極不安全:root 無密碼、匿名用戶擁有 test 庫權限、本地雙重主機名皆可連接。本文提供標準化加固流程,適用 Unix/Linux/Windows,含 mysqladmin、SQL 直改、驗證步驟。

初始權限現狀(mysql 資料庫授權表)

  • root@localhost:無密碼,全權限(含管理權限)
  • 匿名用戶@localhost:可訪問 test、test_% 庫,無管理權限
  • 允許 localhost 與真實主機名雙重連接

步驟 1:設定 root 密碼(三種等效方式)

方式 A:mysqladmin(推薦,MySQL 3.22+)

mysqladmin -u root password 'StrongP@ssw0rd'

方式 B:SQL 直接更新 user 表(通用)

mysql -u root mysql
UPDATE user SET Password = PASSWORD('StrongP@ssw0rd') WHERE User = 'root';
FLUSH PRIVILEGES;

方式 C:SET PASSWORD 語法

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('StrongP@ssw0rd');

步驟 2:驗證密碼生效並重載權限

# 若仍可無密碼登入,說明權限表未重載
mysqladmin -u root status

# 強制重載
mysqladmin -u root reload

步驟 3:後續加固建議(生產環境必做)

  1. 刪除匿名用戶:
    DELETE FROM mysql.user WHERE User = '';
    FLUSH PRIVILEGES;
  2. 禁止 root 遠程登入:
    DELETE FROM mysql.user WHERE User = 'root' AND Host != 'localhost';
    FLUSH PRIVILEGES;
  3. 刪除測試庫:
    DROP DATABASE test;
    DELETE FROM mysql.db WHERE Db = 'test' OR Db LIKE 'test\\_%';
    FLUSH PRIVILEGES;
  4. 建立業務專用帳號,最小權限原則:
    CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongP@ssw0rd';
    GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO 'app_user'@'%';
    FLUSH PRIVILEGES;

Windows 平台差異

  • 安裝精靈會提示設定 root 密碼,若跳過請按上述步驟補齊
  • 服務管理:net start mysql / net stop mysql
  • 配置文件:my.ini 通常在安裝目錄或 C:\Windows

自動化加固腳本

MySQL 5.5+ 內建 mysql_secure_installation 交互式腳本,可一鍵完成上述所有操作,強烈建議使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved