首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL root 密碼設置與用戶授權最小權限實戰

     編輯:MySQL 資料庫相關知識

root 密碼初始化/修改

# 首次登錄(無密碼)
mysql -u root

# 設置/修改 root 密碼
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('StrongP@ssw0rd!');
FLUSH PRIVILEGES;

MySQL 5.7.6+ / 8.0 推薦語法:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongP@ssw0rd!';

創建業務用戶並授予最小權限

-- 1. 創建用戶(指定主機限制)
CREATE USER 'app_user'@'10.0.1.%' IDENTIFIED BY 'AppP@ssw0rd!';

-- 2. 僅授予必要權限(業務庫讀寫)
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE
ON `prod_db`.* 
TO 'app_user'@'10.0.1.%';

-- 3. 禁止 DDL、管理權限
-- REVOKE CREATE, DROP, ALTER, GRANT OPTION ... (默認無)

-- 4. 生效
FLUSH PRIVILEGES;

權限矩陣速查表

權限說明業務用戶管理用戶
SELECT查詢✅✅
INSERT/UPDATE/DELETE增刪改✅✅
EXECUTE存儲過程/函數視需求✅
CREATE/DROP/ALTERDDL❌✅
GRANT OPTION授權他人❌✅
SUPER/PROCESS/SHUTDOWN實例級管理❌極少授予
FILELOAD DATA INFILE❌極少授予

常用管理命令

-- 查看用戶權限
SHOW GRANTS FOR 'app_user'@'10.0.1.%';

-- 回收權限
REVOKE INSERT ON `prod_db`.* FROM 'app_user'@'10.0.1.%';

-- 刪除用戶
DROP USER 'old_user'@'%';

-- 修改密碼
ALTER USER 'app_user'@'10.0.1.%' IDENTIFIED BY 'NewP@ssw0rd!';

安全加固清單

  1. 刪除匿名用戶:DROP USER ''@'localhost';
  2. 禁止 root 遠程登錄:UPDATE mysql.user SET Host='localhost' WHERE User='root';
  3. 移除 test 數據庫:DROP DATABASE test;
  4. 啟用 validate_password 插件強制強密碼策略
  5. 配置 max_user_connections 防單用戶佔滿連接
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved