2013-04-20 8 views
18

एकाधिक दूरस्थ उपयोगकर्ताओं (फॉर्म 'joecool'@'192.168.1.2' के उपयोगकर्ता) के साथ एक MySQL सिस्टम को देखते हुए; क्या कोई SQL कथन है जो मैं सभी दूरस्थ उपयोगकर्ताओं के लिए REQUIRE SSL पर उपयोग कर सकता हूं?सभी दूरस्थ उपयोगकर्ताओं के लिए एसएसएल की आवश्यकता कैसे है

एकल उपयोगकर्ता आदेश है:

GRANT USAGE ON *.* TO 'joecool'@'192.168.1.2' REQUIRE SSL; 

एक "सभी उपयोगकर्ता" संस्करण होने क्योंकि phpMyAdmin आवश्यकता एसएसएल ध्वज का समर्थन नहीं करता बनाने या उन को संशोधित जब विशेष रूप से उपयोगी होगा।

+1

मैं मैं के माध्यम से 'आवश्यकता SSL' बिना लोगों पा सकते हैं नोटिस' mysql.user कहां की तरह मेजबान और ssl_type से चुनें * = 'किसी भी' '192.168%।';! '- मैं' mysql बदल सकते हैं .user' टेबल सीधे? –

+0

आज के आगंतुकों के लिए नोट: उपयोगकर्ताओं को बनाने या संशोधित करते समय phpMyAdmin के पास एक एसएसएल अनुभाग है। –

उत्तर

9

(पूर्व में) होन्ज़ा द्वारा स्वीकृत उत्तर गलत लगता है, इसकी टिप्पणियां देखें। MySQL does not support wildcards for user names के बाद से एक से अधिक उपयोगकर्ताओं को बदलने के लिए GRANT क्वेरी का उपयोग करना संभव नहीं लगता है।

आप अपने आप को सुझाव के रूप में आप mysql.user तालिका में रिकॉर्ड सीधे एक UPDATE क्वेरी का उपयोग बदल सकते हैं और के रूप में मार्क Delisle का सुझाव दिया, साथ ही बाद में फ्लश विशेषाधिकार:

FLUSH PRIVILEGES; 

इसके अलावा dba.stackexchange.com > How to grant multiple users privileges देखते हैं।

2

हां, आप mysql.user तालिका को सीधे संशोधित कर सकते हैं (सावधान रहें)। फिर आप चल रहे सर्वर में परिवर्तन लागू करने के लिए बस एक फ्लश प्राइवेट स्टेटमेंट जारी करते हैं।

+1

जिस क्षेत्र को संशोधित करने की आवश्यकता है वह 0s'enum ('', 'ANY', 'X509', 'विशिष्ट') के' ssl_type' है। तो 'आवश्यक एसएसएल' अनुकरण करने के लिए आप प्रदर्शन करेंगे, 'mysql.user SET ssl_type =' कोई भी 'अपडेट करें जहां उपयोगकर्ता =' क्या आप निश्चित हैं? ''। ध्यान दें कि इस ध्वज को सेट करने (गैर-खाली मान पर), 'someuser @ localhost' के रूप में कनेक्ट करते समय प्रभाव नहीं प्रतीत होता है। (कम से कम मुझे 'somuser @ localhost' के रूप में लॉगिंग से अवरुद्ध नहीं किया गया है, लेकिन यह दूरस्थ कनेक्शन के लिए एसएसएल लागू करता है) –

+0

@DimitryK यह शायद स्थानीयहोस्ट कनेक्शन को प्रभावित नहीं करता है क्योंकि वे अक्सर होते हैं (कम से कम MySQL CLI के साथ) यूनिक्स सॉकेट (या विंडोज़ पर एक नामित पाइप) का उपयोग करके किया जाता है और इसलिए टीएलएस अनावश्यक है। मैं कल्पना करूंगा कि यदि आपने 'mysql -h 127.0.0.1' का उपयोग करके कनेक्ट करने का प्रयास किया है तो इसे एसएसएल का उपयोग करने की आवश्यकता होगी। –

+0

@ क्रिस्टोफर स्चल्ट्ज, एसएसएल ** ** यूनिक्स सॉकेट कनेक्शन को प्रभावित करता है, इसलिए यदि आपको उच्च प्रदर्शन स्थानीय परिवहन की आवश्यकता है तो आप यह सुनिश्चित कर सकते हैं कि एसएसएल आपके क्लाइंट पर अक्षम है। आप '\ s' कमांड के साथ एसएसएल स्थिति देख सकते हैं। ध्यान रखें एसएसएल/टीएलएस स्ट्रीमिंग सॉकेट के शीर्ष पर केवल एक परत है, इसलिए यह किसी भी प्रकार के स्ट्रीम सॉकेट पर चल सकता है। मामलों का भी उपयोग किया जा सकता है, पूर्व। रिमोट सर्वर पर सॉकेट प्रॉक्सी का उपयोग करना। –

0

आप require_secure_transport के साथ कॉन्फ़िगर कर सकते हैं।

[mysqld] 
... 
ssl-ca = ... 
ssl-cert = ... 
ssl-key = ... 
... 
require-secure-transport = ON 

यह क्षमता की आपूर्ति करता है प्रति-खाता एसएसएल आवश्यकताओं, जो प्राथमिकता दी जाती है। उदाहरण के लिए, यदि किसी खाते को रिक्वेयर एसएसएल, के साथ परिभाषित किया गया है, तो require_secure_transport सक्षम करने से यूनिक्स सॉकेट फ़ाइल का उपयोग करने के लिए खाते का उपयोग करना संभव नहीं होता है।

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