मैं एक क्रॉन नौकरी चला रहा हूं जो एक PHP स्क्रिप्ट के माध्यम से mysqldump निष्पादित करता है, डंप को RELOAD विशेषाधिकार की आवश्यकता होती है। MySQL व्यवस्थापक खाते का उपयोग करना सही नहीं लगता है, लेकिन न ही व्यवस्थापक विशेषाधिकारों के साथ उपयोगकर्ता बना रहा है।PHP क्रॉन नौकरी के दौरान mysqldump के लिए MySQL रीलोड विशेषाधिकार: MySQL व्यवस्थापक खाता का उपयोग करें या अद्वितीय उपयोगकर्ता बनाएं? सुरक्षा?
मेरी मुख्य चिंता सुरक्षा पहलू है, मैं कक्षा के संरक्षित सरणी "संपत्ति" में डीबी विशेषताओं (उपयोगकर्ता नाम, पासवर्ड, आदि) लोड कर रहा हूं।
मुझे आश्चर्य है कि कौन सा दृष्टिकोण अधिक समझ में आता है या यदि एक ही परिणाम प्राप्त करने का दूसरा तरीका है।
अवलोकन:
दीप सर्वर: CentOS 5.8, अपाचे 2.2.3, MySQL 5.0.95, पीएचपी 5.3.3
क्रॉन नौकरी रूपरेखा:
- कच्चे आँकड़े डंप वेबसाइट डीबी में दो इनो डीबी टेबल से डेटा, वे का विदेशी कुंजी संबंध है।
- तालिकाओं में आँकड़े db
- ऑटो incrementing प्राथमिक कुंजी है कि हस्तांतरित
- प्राथमिक कुंजी मूल्य का प्रयोग करें एक प्रश्न है कि वेबसाइट से नकल डेटा हटाता में था का अंतिम मान जाओ में डेटा लोड डाटाबेस
- प्रक्रिया आँकड़े DB में स्थानांतरित डेटा रिपोर्ट तालिकाओं को भरने के लिए db
- जब प्रोसेस पूर्ण हो, कच्चे आँकड़े आँकड़ों से डेटा को हटाने
वेबसाइट डेटाबेस को बाइनरी लॉगिंग के साथ एक मास्टर के रूप में कॉन्फ़िगर किया गया है, और एक बार आंकड़े डेटा को डेटा डेटाबेस में संग्रहीत और संसाधित करने के बाद दोहराया जाएगा (वेबसाइट डेटाबेस को दोहराना आंकड़ों को स्थानांतरित करने के लिए उत्साह था उनका अपना डेटाबेस)।
क्रॉन नौकरी के दौरान उपयोग की जाने वाली सभी फाइलें DocumentRoot निर्देशिका के बाहर स्थित हैं।
वास्ते:
<?php
$SQL1 = "--no-create-info --routines --triggers --master-data ";
$SQL1 .= "--single-transaction --quick --add-locks --default-character-set=utf8 ";
$SQL1 .= "--compress --tables stats_event stats_event_attributes";
$OUTPUT_FILENAME = "/var/stats/daily/daily-stats-18.tar.gz";
$cmd1 = "/usr/bin/mysqldump -u website_user -pXXXXXX website_db $SQL1 | gzip -9 > $OUTPUT_FILENAME";
exec($cmd1);
?>
त्रुटि संदेश:
mysqldump: Couldn't execute 'FLUSH TABLES': Access denied; you need the RELOAD privilege for this operation (1227)
mysqldump पहला कदम में प्रदर्शन पुनः लोड विशेषाधिकार की आवश्यकता है, यहाँ आदेश है अगर मैं mysql व्यवस्थापक क्रेडेंशियल्स का उपयोग करता हूं तो ठीक काम करता है।
मैं प्रतिकृति के बारे में स्पष्ट नहीं था, यह वेबसाइट डेटाबेस के लिए है, हम बंद पहली आँकड़े स्थानांतरित करने के लिए, क्योंकि वे से सब कुछ किसी और संयुक्त और प्रसंस्करण कभी कभी बातें नीचे bogs अधिक स्थान ले चाहता था। आंकड़ों के डंप को बचाने के लिए सिर्फ रिपोर्ट का थोड़ा सा समय महत्वपूर्ण नहीं है। तो अस्थायी नहीं है। मान लीजिए कि मेरी चिंता किसी और चीज से अधिक सुरक्षा के बारे में है, मैं इस सवाल पर जोर दूंगा। विशेष रूप से सुरक्षा पर कोई विचार? – codewaggle
मैं अंधेरे से यह मान रहा हूं कि यह संदर्भ से साझा होस्टिंग पर नहीं है। सुनिश्चित करें कि उपयोगकर्ता केवल वांछित होस्ट से कनेक्ट हो सकता है और एक सुरक्षित पासवर्ड चुन सकता है? यहां शायद कोई वास्तविक खतरा नहीं है। – Charles
बस जो मैं सुनना चाहता था। हम सर्वर के मालिक हैं और मुझे लगता है कि उपयोगकर्ता को एक अलग सर्वर पर ले जाने के बारे में सोचकर, @localhost पर सेट करने के लिए लगाया गया है लेकिन स्थानीयहोस्ट अभी काम करेगा। – codewaggle