2013-05-14 62 views
5

儘管localhost具有執行權限,但我在我的web應用程序中運行查詢時遇到以下錯誤。我通常所做的解決了其他論壇中的其他用戶的問題,但由於某種原因,除非我錯過了某些東西,否則不能解決我的問題。對用戶執行命令被拒絕只讀用戶

注意:當我在navicat或其他地方運行相同的查詢時,它工作正常。

還有什麼可以解決這個問題嗎?

由於

QUERY:

SELECT 
get_balance('$deadline', '$id') AS Balance, 
allow_submission('$id', '$term') AS Over 
FROM dual 

ERROR:

execute command denied to user 'readonlyuser'@'localhost' for routine 'mydb.allow_submission' 

我所做的:在Navicat GUI和Linux終端作爲rootsuperuser

GRANT EXECUTE ON PROCEDURE mydb.allow_submission TO 'readonlyuser'@'localhost'; 

回答

5

當你在參數傳遞給allow_submission,我認爲,這是一個功能,而不是一個過程。

試試這個:

GRANT EXECUTE ON FUNCTION mydb.allow_submission TO 'readonlyuser'@'localhost'; 
+1

我總是說,如果你一直在做的東西,休息一下,否則2 + 2變5!我不知道是什麼讓我在那裏寫PROCEDURE。非常感謝你。 – BentCoder 2013-05-14 10:20:40