डॉक्स / एक database user कई databases के लिए

एक database user कई databases के लिए

एक ऐसी application जो दो databases का उपयोग करती है — एक मुख्य और back office के लिए एक अलग schema, मान लीजिए — को दो logins की ज़रूरत नहीं। एक ही user को दोनों तक access दें।

किसी user को एक और database दें

Databases → Database users → user के row पर, Add database।

आपसे database का छोटा नाम पूछा जाता है (shop, न कि youracct_shop)। user अपना मौजूदा password और अपना मौजूदा access रखता है; नया database उसमें जोड़ दिया जाता है।

उस table का हर row दिखाता है कि user फ़िलहाल किस तक पहुँच सकता है:

app        Databases: shop, admin        Access: localhost only

जिस user के पास अभी कुछ नहीं है, वह no databases yet दिखाता है।

एक हटाएँ

वही row, Remove database। यह बटन तब दिखता है जब user के पास कम-से-कम एक database हो। आपसे पूछा जाता है कि कौन-सा, और जब चुनने के लिए केवल एक हो तो यह पहले से भरा होता है।

किसी user से database हटाने पर user delete नहीं होता, और database को कोई फ़र्क नहीं पड़ता। user अपना password और बाकी हर database रखता है जो उसके पास है। मुद्दा यही है: इसके अस्तित्व में आने से पहले, access वापस लेने का एकमात्र तरीका user को delete करना था, जिससे उससे sign in करने वाली हर साइट टूट जाती थी।

उपयोग करने से पहले जानने लायक बातें

  • Access एक बार में एक database के लिए दिया जाता है। किसी user को कभी सर्वर तक blanket access नहीं मिलता; हर grant आपके एक ही database का नाम लेता है।
  • आप किसी database के आख़िरी user को हटा सकते हैं। कुछ भी आपको नहीं रोकता, और कुछ भी आपको चेतावनी नहीं देता। database और उसकी सामग्री बनी रहती है, पर तब तक कोई login उस तक नहीं पहुँच सकता जब तक आप दोबारा एक grant न दें — और अगर कोई साइट अचानक कहे कि वह connect नहीं कर पा रही, तो यही समाधान है।
  • नामों पर आपका account prefix लगता है। जो database आप shop के रूप में बनाते हैं वह सर्वर पर youracct_shop है, और user app वह youracct_app है। पैनल में छोटा नाम टाइप करें और अपनी application के configuration में पूरा नाम।
  • केवल आपके अपने databases और users। किसी दूसरे अकाउंट के database का नाम लेने वाला grant मना कर दिया जाता है। और वैसे ही एक revoke भी।

शुरू से एक सेट करना

  1. Databases → Create database, दो बार — उदाहरण के लिए site और admin।
  2. Create user & connect: user का नाम रखें, dropdown से site चुनें। यही पहला grant है।
  3. नए user के row पर, Add database, और admin डालें।

जब password दिखे तो उसे copy कर लें। पैनल उसे ऐसे रूप में store करता है जिसे वह वापस पढ़ नहीं सकता, इसलिए खोया हुआ password reset किया जाता है, recover नहीं — यही उसी row पर Password है।

जब कुछ ग़लत दिखे

"No such database for this account." नाम ग़लत टाइप हुआ, या आपने prefixed रूप डाला। ऊपर Databases table में जैसा दिखता है वैसा छोटा नाम उपयोग करें।

"No such database user for this account." पेज पर user list पुरानी है। इसे reload करें।

Application एक database से connect होती है पर दूसरे से नहीं। पुष्टि करें कि row में Databases के नीचे दोनों सूचीबद्ध हैं, और application prefixed नाम (youracct_admin) और वही host उपयोग कर रही है — जब तक आपने उस user के लिए Remote hosts configure न किया हो, तब तक localhost।

किसी remote machine से grant का कोई असर नहीं दिख रहा। यहाँ जोड़े गए grants local login पर लागू होते हैं। अगर वह user किसी बाहरी address से भी connect होता है, तो grant के बाद उसकी Remote hosts list दोबारा save करें, ताकि remote entry उन databases के साथ अद्यतन हो जाए जो अब user के पास हैं।