मैं वर्तमान में एक निगरानी प्रणाली को लागू करने की प्रक्रिया में हूं, जिसके हिस्से में MySQL डेटाबेस के कुछ पहलुओं की निगरानी शामिल है, जैसे:

  • दिए गए MySQL उदाहरण की प्रतिकृति स्थिति (sys तालिका)
  • डेटाबेस 1 की तालिका x में रिकॉर्ड की संख्या (db1.tableX)
  • किसी अन्य डीबी की तालिका में दी गई विशेषता का योग (db2.tableY.column3)

ये 3 चीजें बहुत ही सरल प्रश्नों का उपयोग करके पाई जा सकती हैं:

SELECT viable_candidate FROM sys.gr_member_routing_candidate_status
SELECT COUNT(1) FROM db1.tableX
SELECT SUM(column3) FROM db2.tableY

हालांकि, इसके लिए उपयोगकर्ता खाते को कम से कम 3 संपूर्ण डेटाबेस / तालिकाओं तक पढ़ने की पहुंच के साथ बनाने की आवश्यकता होती है।

क्या इसके बजाय केवल दिए गए प्रश्नों के परिणामों तक पहुंच सीमित करने का कोई तरीका है? मैं एक अतिरिक्त डेटाबेस बनाने के बारे में सोच रहा था जो किसी भी तरह उपरोक्त 3 प्रश्नों के आउटपुट से जुड़ा हुआ है, और फिर केवल इस डेटाबेस तक पहुंच के साथ एक नया उपयोगकर्ता बना रहा है, लेकिन मुझे यकीन नहीं है कि यह तकनीक क्या है, या यह कैसे काम करेगी?

अग्रिम में धन्यवाद!

1
Duncan McArdle 11 अक्टूबर 2018, 16:45

1 उत्तर

सबसे बढ़िया उत्तर

प्रत्येक क्वेरी के आधार पर एक दृश्य बनाएं और फिर < a href="https://dev.mysql.com/doc/refman/8.0/en/grant.html" rel="nofollow noreferrer">ऐसे दृश्य के लिए केवल एक चुनिंदा अनुमति दें।

उदाहरण:

CREATE VIEW dbo.view_name AS
SELECT viable_candidate 
FROM sys.gr_member_routing_candidate_status

और तब

GRANT SELECT ON dbo.view_name TO 'user1'@'localhost'
2
Maurizio Carcassona 11 अक्टूबर 2018, 17:13