2012-04-10 17 views
18

मैं किसी उपयोगकर्ता को डेटाबेस में संग्रहीत प्रक्रिया निष्पादित करने की अनुमति देने के बजाय एक MySQL डेटाबेस पर संग्रहित प्रक्रिया स्तर पर संग्रहीत प्रक्रिया को चलाने की अनुमति देने का प्रयास कर रहा हूं। मैं निम्नलिखित कोड निष्पादित करने के लिए कोशिश कर रहा था:MySQL संग्रहीत प्रक्रिया अनुमतियां

GRANT EXECUTE ON myDB.spName TO 'TestUser'@'localhost'; 

लेकिन मैं निम्नलिखित त्रुटि प्राप्त हो रही:

Illegal GRANT/REVOKE command, please consult the manual to see which privileges can be used.

मैं निम्नलिखित करने के लिए इसे बदलने की कोशिश की:

GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost'; 

और मैं एक मिल विभिन्न त्रुटि बताते हुए:

Cant find any matching rows in the user table.

मैं उलझन में हूं कि मैं कहां गलत हो रहा हूं?

इसके अलावा MySQL वर्कबेंच पर भी मुझे GUI के माध्यम से संग्रहीत प्रक्रिया स्तर पर अनुमतियां देने के लिए कोई तरीका नहीं दिख रहा है। क्या यह सही है या क्या मुझे कुछ याद आ रहा है?

अग्रिम धन्यवाद।

उत्तर

27

आपका दूसरा प्रयास आगे बढ़ने का सही तरीका है। जी

GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost'; 

लेकिन अगर काम कर जाँच नहीं कर रहा है

क) आप (उपयोगकर्ता जहाँ से आप इन सभी आदेश द्वारा चलाए जा रहे) अनुदान अधिकार [यानी अनुदान विकल्प] की है। यदि आप जड़ हैं तो इसके ओकी

बी) उपयोगकर्ता को जांचें कि आप निष्पादन अनुमति दे रहे हैं। जी

select user from mysql.user where user like 'test%'; 

यदि नया उपयोगकर्ता नहीं जोड़, उदा,

CREATE USER 'TestUser'@'localhost' IDENTIFIED BY 'passwordxxxx'; 
#depending on you needs 
GRANT SELECT,DELETE,UPDATE PRIVILEGES ON myDb.* TO 'TestUser'@'localhost'; 

आशा है कि यह :)

+0

इम रूट के रूप में लॉग-इन और उपयोगकर्ता मौजूद न होने पर कोड चलाने: की तरह mysql.user जहां से उपयोगकर्ता द्वारा 'परीक्षण%' का चयन उपयोगकर्ता; लेकिन मुझे अभी भी वही त्रुटियां मिल रही हैं। – Olly

+0

जैसा कि मैंने सुझाव दिया है और उस उपयोगकर्ता को निष्पादित अधिकार प्रदान करने का प्रयास करें – sakhunzai

+2

पासवर्ड के साथ एक और प्रयास करें: 'पासवर्ड' द्वारा पहचाना गया IDB.spName 'testUser' @ 'localhost' 'पासवर्ड' द्वारा पहचाना गया; ' – sakhunzai

1

मदद कर सकता है MySQL Workbench के बारे में, मैं एक ही मुद्दा हो रही थी अपने प्रश्न के दूसरे भाग का उत्तर दें। लेकिन प्रयोग करने के बाद मैंने पाया कि यदि आप भूमिका निभाते हैं और नीचे विशेषाधिकार टैब खोलते हैं तो आप ऑब्जेक्ट बॉक्स में मॉडल अवलोकन से दिनचर्या खींच सकते हैं। वहां से केवल नए जोड़े गए ऑब्जेक्ट पर क्लिक करें और उस भूमिका के लिए इच्छित अनुमतियां जोड़ें।

आशा में मदद करता है :)

संबंधित मुद्दे