tutorial - mysql workbench




बता दें कि MySQL उपयोगकर्ता डेटाबेस बनाते हैं, लेकिन केवल अपने स्वयं के डेटाबेस तक पहुंच की अनुमति देते हैं (3)

आप उपयोग कर सकते हैं

GRANT ALL PRIVILEGES ON `testuser\_%` .  * TO 'testuser'@'%';

testuser साथ शुरू होने वाले नामों के साथ सभी डेटाबेस पर उपयोगकर्ता testuser विशेषाधिकार प्रदान करने के लिए।

यह testuser को testuser_ से शुरू होने वाले नामों तक सीमित डेटाबेस बनाने की अनुमति देता है

मैं कई MySQL उपयोगकर्ताओं को आदेश जारी करने में सक्षम होना चाहते हैं

CREATE DATABASE dbTest;

लेकिन मैं यह भी चाहता हूं कि इनमें से प्रत्येक उपयोगकर्ता केवल अपने स्वयं के डेटाबेस को देख और एक्सेस कर सके।

सभी मैं पा सकता था कि या तो डीबीए द्वारा डेटाबेस कैसे बनाया जाए और विशिष्ट उपयोगकर्ता को इस डेटाबेस पर विशेषाधिकार प्रदान करें:

GRANT ALL PRIVILEGES ON dbTest.* TO 'user';

या किसी उपयोगकर्ता के लिए सभी डेटाबेस पर विशेषाधिकार प्रदान करें:

GRANT ALL PRIVILEGES ON *.* TO 'user';

लेकिन न तो मैं जो चाहता हूं, क्योंकि उसे पैमाना और सुरक्षित होना चाहिए।


आप उपयोग कर सकते हैं

GRANT ALL PRIVILEGES ON `testuser_%` . * TO 'testuser'@'%';

testuser साथ शुरू होने वाले नामों के साथ सभी डेटाबेस पर उपयोगकर्ता testuser विशेषाधिकार प्रदान करने के लिए।

संपादित करें: मुझे यकीन नहीं है कि इस उपयोगकर्ता को अब डेटाबेस बनाने की भी अनुमति है।

हां, यह testuser को testuser_ साथ शुरू होने वाले नामों तक सीमित डेटाबेस बनाने की अनुमति देता है


केवल अनुमतियों का उपयोग करके ऐसा करना असंभव है।

एक अन्य उत्तर में सुझाया गया वर्कअराउंड: GRANT ALL PRIVILEGES ON testuser_% GRANT ALL PRIVILEGES ON लिखें . * TO 'testuser'@'%'; . * TO 'testuser'@'%'; समस्या यह है कि उपयोगकर्ताओं को तो अपने डेटाबेस के नामकरण में बहुत सावधान रहना चाहिए।

उदाहरण के लिए, यदि उपयोगकर्ता bbb_xyz डेटाबेस को bbb_xyz बनाता है, तो इसे विशेष रूप से उपयोगकर्ता bbb द्वारा एक्सेस किया जा सकता है, लेकिन उपयोगकर्ता bbb_xyz द्वारा नहीं।





mysql