通常狀況應該在服務器爲數據庫創建一個單獨的帳號,以用於管理數據庫,而且該用戶權限應被嚴格控制。而在登陸SQL數據庫時,應使用建立的單獨帳號進行數據庫一些DLL定義,如創建觸發器、函數、存儲過程。mysql
承接上面,尤爲是存儲過程,由於若是是root等高權限用戶創建的存儲過程,低權用戶訪問可能出現: Userdoes not have access to metadata required to determine stored procedureparameter types. If rights can not be granted, configure connection with"noAccessToProcedureBodies=true" to have driver generateparameters that represent INOUT strings irregardless of actual parametertypes.
sql
這類錯誤,通常是因爲低權用戶訪問了高權用戶建立的存儲過程。數據庫
jdbc:mysql://ipaddress:3306/test?noAccessToProcedureBodies=true
複製代碼
GRANT SELECT ON mysql.proc TO 'user'@'localhost';
複製代碼
update mysql.proc set DEFINER='usename' WHERE NAME='proc_name' AND db='mydb';
複製代碼