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

Linux 命令行建立 MySQL 用戶完整流程:創建、授權、資源限制與生效

     編輯:MySQL 綜合教學

Linux 命令行建立 MySQL 用戶完整流程

從登錄實例到賬號落地,本文提供標準化、可直接用於生產環境的操作指南,涵蓋用戶創建、權限模型、資源配額及驗證驗證全鏈路。

前置條件

# 以 root 登錄(生產建議使用專用運維賬號)
mysql -u root -p
# 輸入 root 密碼後進入 mysql> 提示符

第一步:創建用戶

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
  • localhost:僅允許本機 Unix socket 連接
  • 需遠程訪問請改為 '%' 或具體 IP/網段
  • MySQL 8.0+ 建議加密插件:IDENTIFIED WITH caching_sha2_password BY 'pwd'

第二步:驗證創建結果

SELECT host, user, authentication_string FROM mysql.user WHERE user='myuser';

確認 host、user、加密密碼欄位正確寫入。

第三步:授權權限(核心)

常用權限分類

權限說明
ALL PRIVILEGES除 GRANT OPTION 外所有權限
SELECT / INSERT / UPDATE / DELETE數據讀寫基礎權限
CREATE / ALTER / DROP結構變更權限
INDEX索引管理
CREATE VIEW / SHOW VIEW視圖操作
LOCK TABLES表鎖定
RELOAD / SHUTDOWN / PROCESS / SUPER管理類高危權限,嚴格限制

授權語法範例

-- 僅讀權限於特定庫
GRANT SELECT ON mydb.* TO 'myuser'@'localhost';

-- 讀寫權限於特定表
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.orders TO 'myuser'@'localhost';

-- 所有權限於所有庫(極度謹慎)
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'localhost';

-- 帶授權選項(允許該用戶再授權他人)
GRANT ALL ON mydb.* TO 'myuser'@'localhost' WITH GRANT OPTION;

第四步:資源限制(防止濫用)

GRANT USAGE ON *.* TO 'myuser'@'localhost'
    WITH MAX_QUERIES_PER_HOUR 1000
         MAX_UPDATES_PER_HOUR 500
         MAX_CONNECTIONS_PER_HOUR 100
         MAX_USER_CONNECTIONS 10;
  • MAX_QUERIES_PER_HOUR:每小時最大查詢次數
  • MAX_UPDATES_PER_HOUR:每小時最大更新次數
  • MAX_CONNECTIONS_PER_HOUR:每小時最大新連接數
  • MAX_USER_CONNECTIONS:同時在線連接上限(受全局 max_user_connections 制約)

第五步:驗證授權結果

SHOW GRANTS FOR 'myuser'@'localhost';

輸出包含 GRANT USAGE ... WITH MAX_... 即資源限制生效。

第六步:刷新權限生效

FLUSH PRIVILEGES;

MySQL 8.0+ 非必要(隱式提交),但保留習慣兼容舊版本。

撤銷權限與刪除用戶

-- 撤銷特定權限
REVOKE INSERT ON mydb.* FROM 'myuser'@'localhost';

-- 刪除用戶(同時清理權限記錄)
DROP USER 'myuser'@'localhost';

生產環境檢查清單

  • ☐ 原則最小權限:僅授業務必需庫/表/列
  • ☐ 禁用 'user'@'%' 全通配,綁定具體 IP/網段
  • ☐ 啟用 SSL:REQUIRE SSL / REQUIRE X509
  • ☐ 密碼策略:validate_password 插件強制複雜度、過期輪換
  • ☐ 審計日誌:開啟 audit_log 記錄關鍵操作

遵循標準化流程,配合最小權限原則,可構建安全可控的 MySQL 訪問治理體系。

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