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

MySQL 用戶權限配置實戰:遠程工具無法寫入的排查與修復

     編輯:MySQL 資料庫相關知識

現象

遠程管理工具能讀取數據,但無法執行刪除/修改操作。

排查思路

  1. SHOW GRANTS FOR 'username'@'host'; 發現權限僅含 SELECT, INSERT, UPDATE, DELETE。
  2. 工具底層通過存儲過程/函數執行寫入,當前用戶缺少 EXECUTE、CREATE ROUTINE、ALTER ROUTINE 權限。

修復授權

GRANT DELETE, INDEX, EXECUTE, CREATE ROUTINE, ALTER ROUTINE
ON `dbName`.* TO 'username'@'host';

再次 SHOW GRANTS 確認新增權限,工具恢復正常。

附:導入自定義函數報錯 1418 解決

現象:mysqldump -uroot -ntd -R dbName > dbName.sql 導入報 ERROR 1418 (HY000),提示缺少 DETERMINISTIC/NO SQL/READS SQL DATA 聲明且 log_bin_trust_function_creators=OFF。

修復:

SET GLOBAL log_bin_trust_function_creators=1;
-- 導入完成後建議關閉
SET GLOBAL log_bin_trust_function_creators=0;

總結

權限排查要看「工具實際調用方式」,除基礎 CRUD 外,存儲程序相關權限常被忽略;導入函數需臨時放開 log_bin_trust_function_creators。

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