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

MySQL 授予用戶查詢權限完整教程

     編輯:MySQL 綜合教學

MySQL 授予用戶查詢權限完整教程

在生產環境中,遵循最小權限原則,通常只需授予應用賬號 SELECT 權限而非完整管理權限。本文詳細說明如何安全地配置只讀賬號。

基本授權語法

GRANT SELECT ON *.* TO 'tianq'@'localhost' IDENTIFIED BY 'tianq';

參數詳解

參數說明
SELECT僅授予查詢權限,禁止修改數據
*.*作用於所有數據庫的所有表;生產環境建議限定具體庫:db_name.*
'tianq'@'localhost'用戶名與主機限制;% 表示任意主機,localhost 僅本地
IDENTIFIED BY 'tianq'設置密碼(MySQL 8.0+ 建議使用 CREATE USER 再 GRANT)

最佳實踐:分步創建(MySQL 8.0+ 推薦)

-- 1. 創建用戶
CREATE USER 'readonly_user'@'%' IDENTIFIED BY 'StrongPassw0rd!';

-- 2. 授予特定庫只讀權限
GRANT SELECT ON `production_db`.* TO 'readonly_user'@'%';

-- 3. 刷新權限生效
FLUSH PRIVILEGES;

常見場景對比

  • 開發環境:GRANT SELECT ON *.* TO 'dev'@'%' IDENTIFIED BY '...';
  • 報表/分析賬號:GRANT SELECT ON `dw_db`.* TO 'analyst'@'10.0.0.%' IDENTIFIED BY '...';
  • 僅特定表:GRANT SELECT ON `db`.`orders` TO 'api_user'@'%';

權限驗證

SHOW GRANTS FOR 'tianq'@'localhost';

安全提醒

  1. 生產環境嚴禁使用 root 或通配符主機 % 配合弱密碼
  2. 定期審計 mysql.user 表,清理無用賬號
  3. MySQL 8.0 建議使用 caching_sha2_password 認證插件
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved