2015-04-01 33 views
3

你能幫我Mysql的過程Erorr(執行拒絕用戶命令)

創建過程:

CREATE DEFINER=`gnysoftxuser`@`%` PROCEDURE `insertadmin`(IN adi VARCHAR(150))BEGIN Insert Into mekan_tablo (mekan_adi) values (adi); END; 

MySQL查詢

CALL insertadmin('test'); 

MySQL錯誤:

execute command denied to user 'gnysoftxuser'@'%'for routine 'xdb.insertadmin'

回答

0

我可以找到它的任何文檔,但似乎DEFINER用戶必須已授予EXECUTE,即使它沒有執行任何執行(1)。

  1. 創建用戶userexecuteonly
  2. 格蘭特userexecuteonly EXECUTE
  3. 創建用戶userselectonly
  4. 格蘭特userselectonlySELECT
  5. 創建過程設定DEFINER作爲userselectonlythat選擇數據
  6. 連接作爲userexecuteonly
  7. 呼叫過程
  8. 注意錯誤SQL錯誤(1370):執行命令剝奪了用戶userselectonly
  9. 格蘭特userselectonlyEXECUTE
  10. 呼叫過程
  11. 程序運行和返回數據。

(1)沒有理由的程序不會調用其它過程

這可能是如果userselectonly在其他地方使用,不應該是能夠執行程序的一個問題。

相關問題