"MySQL

2015-06-29 5 views
8

में" पासवर्ड से पहचान "" मैं अक्सर कई MySQL ट्यूटोरियल में देखता हूं कि उपयोगकर्ता उपयोगकर्ता निर्माण के दौरान और उन्हें विशेषाधिकार प्रदान करते समय कमांड IDENTIFIED BY 'password' का उपयोग करते हैं।"MySQL

उदाहरण के लिए:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; 
GRANT ALL PRIVILEGES ON database.* TO 'username'@'localhost' IDENTIFIED BY 'password'; 

मैं IDENTIFIED BY बिना GRANT उपयोग करने की कोशिश है और यह काम करता है।
क्या कोई मुझे समझा सकता है कि इसका दो बार उपयोग क्यों किया जाता है? विशिष्ट विशेषाधिकारों के लिए अन्य पासवर्ड हो सकता है?

उत्तर

3

के रूप में, तो स्वयं बनाए गए उपयोगकर्ता अनुदान नीचे लाइन के लिए पर्याप्त के लिए अधिकारों के

GRANT ALL PRIVILEGES ON database.* TO 'username'@'localhost' IDENTIFIED BY 'password'; 

नोट है: दर्शाता अपना पासवर्ड के लिए पासवर्ड क्या आप क्रेडेंशियल सत्यापन के लिए सहेजना चाहते पहचानें।

+0

हाय जफर मैं अभी भी समझ में नहीं कर सकते क्यों कि यह शिक्षण सामग्री में नहीं किया जा सका: 1.) हम उपयोगकर्ता और पासवर्ड सेट जोड़ें: उपयोगकर्ता बनाने के 'उपयोगकर्ता नाम' @ 'स्थानीय होस्ट' 'पासवर्ड' द्वारा पहचाना गया; 2.) फिर हम निजीकरण प्रदान करते हैं (हम पहचाने गए हिस्से को छोड़ते हैं) डेटाबेस पर सभी प्राइवेट प्रदान करते हैं। * 'उपयोगकर्ता नाम' @ 'localhost'; मुझे लगता है कि परिणाम वही होना चाहिए? क्या मै गलत हु? – user3461823

+0

पहले में आपने एक उपयोगकर्ता बनाया है लेकिन यह परिभाषित नहीं किया गया है कि किस प्रकार के विशेषाधिकार उपयोगकर्ता को आवश्यक है ... दूसरे में आप सभी विशेषाधिकार प्रदान कर रहे हैं, केवल चयन या अद्यतन आदि के साथ .... पहला आदेश पहले से ही दूसरे आदेश में शामिल है यानी यदि आप अनुदान कमांड का उपयोग करते हैं तो उपयोगकर्ता स्वचालित रूप से उपयोगकर्ता बनाते हैं यदि उपयोगकर्ता मौजूद नहीं है और यदि उपयोगकर्ता मौजूद है तो केवल अनुमतियां बदलें ... –

+2

यह कार्यक्षमता MySQL 5.7 में भ्रमित और बहिष्कृत है। पासवर्ड को 'उपयोगकर्ता बनाएं' या 'वैकल्पिक उपयोगकर्ता' के साथ सेट किया जाना चाहिए। – SystemParadox

0

यह सिर्फ एक अतिरिक्त सुरक्षा उपाय है। आपके पास अलग-अलग सर्वरों पर एक ही उपयोगकर्ता के लिए अलग-अलग पासवर्ड हो सकते हैं, उदाहरण के लिए साझा होस्ट वातावरण में। यदि यह आपका स्वयं का सर्वर है और आप और आपके सहयोगी केवल वे हैं जो इसका उपयोग करते हैं तो आपको उन उपयोगकर्ताओं की पहचान करने की आवश्यकता नहीं है जिन्हें आप विशेषाधिकार देते हैं।

यदि आप उपयोगकर्ताओं की पहचान करते हैं तो केवल आपके द्वारा निर्दिष्ट पासवर्ड का उपयोग उस विशेषाधिकार को करने के लिए उस उपयोगकर्ता के साथ किया जा सकता है।

4

GRANT उपयोगकर्ताओं को विशेषाधिकार जोड़ने के लिए है। भ्रमित रूप से, इसमें उपयोगकर्ताओं को बनाने और उनके पासवर्ड बदलने की क्षमता भी है। यह कार्यक्षमता बहिष्कृत है और इसका उपयोग नहीं किया जाना चाहिए। , खाते के लिए

जब पहचाना मौजूद है और आप वैश्विक अनुदान विशेषाधिकार (GRANT विकल्प) है, किसी भी पासवर्ड निर्दिष्ट नया पासवर्ड हो जाता है:

आप IDENTIFIED साथ GRANT का उपयोग करते हैं आप उपयोगकर्ता का पासवर्ड बदल सकते हैं भले ही खाता मौजूद है और पहले से ही एक पासवर्ड है। पहचान के बिना, खाता पासवर्ड अपरिवर्तित बनी हुई है।

MySQL 5.7.2 के रूप में, यदि खाता पहले से मौजूद है, तो पहचान के साथ निषिद्ध है क्योंकि यह केवल नए खातों को बनाने के दौरान उपयोग के लिए है। अगर यह मौजूद नहीं है

इसके अलावा, GRANT उपयोगकर्ता बना सकते हैं:

अनुदान बयान में नामित एक खाता मौजूद नहीं है, तो कार्रवाई की NO_AUTO_CREATE_USER एसक्यूएल मोड पर निर्भर करता है:

  • यदि NO_AUTO_CREATE_USER सक्षम नहीं है, तो GRANT खाता बनाता है। यह बहुत असुरक्षित है जब तक कि आप पहचान के बिना एक nonempty पासवर्ड निर्दिष्ट करते हैं।
  • यदि NO_AUTO_CREATE_USER सक्षम है, तो GRANT विफल रहता है और खाता नहीं बनाता है, जब तक कि आप पहचान के बिना एक प्रमाणीकरण प्लगइन निर्दिष्ट नहीं करते हैं या पहचान के साथ प्रमाणीकरण प्लगइन का नाम नहीं देते हैं।

खाता प्रमाणीकरण विशेषताओं को परिभाषित करने के लिए अनुदान का उपयोग MySQL 5.7.6 के रूप में बहिष्कृत किया गया है। इसके बजाय, CREATE USER या ALTER USER का उपयोग करके प्रमाणीकरण विशेषताओं को स्थापित या बदलें। भविष्य में MySQL रिलीज में यह अनुदान क्षमता हटा दी जाएगी।

https://dev.mysql.com/doc/refman/5.7/en/grant.html

सारांश में देखो, CREATE का प्रयोग कर एक उपयोगकर्ता बनाने के लिए, और विशेषाधिकारों को जोड़ने के लिए GRANT का उपयोग करें:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; 
GRANT ALL PRIVILEGES ON database.* TO 'username'@'localhost'; 
0

और क्या अगर मैं खिड़कियों पर एक ही बात है:

mysql> छात्रों_डीबी पर सभी प्रावधानों को अनुदान दें। * To 'students_db_user' @ 'localhost' पहचान 'passwo द्वारा तृतीय ';

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTEFIED BY 'password'' at line 1 
+2

यह वास्तव में प्रश्न का उत्तर नहीं देता है। यदि आपके पास कोई अलग प्रश्न है, तो आप [प्रश्न पूछें] (https://stackoverflow.com/questions/ask) पर क्लिक करके पूछ सकते हैं। एक बार आपके पास पर्याप्त [प्रतिष्ठा] (https://stackoverflow.com/help/) हो जाने पर आप इस प्रश्न पर अधिक ध्यान आकर्षित करने के लिए [एक बक्षीस] (https://stackoverflow.com/help/privileges/set-bounties) भी जोड़ सकते हैं। क्या-प्रतिष्ठा)। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/1 9008435) –

+0

आपका उत्तर एक टिप्पणी या प्रश्न है। यदि आप बाद में एक नया प्रश्न पूछ सकते हैं और वर्तमान को संदर्भित कर सकते हैं। टिप्पणी पोस्ट करने के लिए ऐसा करने में सक्षम होने के लिए 50rep प्राप्त करें। – ZF007