"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إزالة بنود DEFINER من مخلفات MySQL: دليل لتعزيز أمان النسخ الاحتياطي وإمكانية النقل

كيفية إزالة بنود DEFINER من مخلفات MySQL: دليل لتعزيز أمان النسخ الاحتياطي وإمكانية النقل

تم النشر بتاريخ 2024-11-19
تصفح:820

 How to Remove DEFINER Clauses from MySQL Dumps: A Guide to Enhancing Backup Security and Portability

إزالة بنود DEFINER من تفريغات MySQL

قد تحتوي تفريغات MySQL على عبارات DEFINER، التي تحدد المستخدم والمضيف اللذين قاما بإنشاء كائنات قاعدة البيانات التي يتم تفريغها . يمكن أن تشكل هذه البنود مخاوف أمنية أو تسبب تعارضات عند استيراد التفريغ إلى بيئة مختلفة.

للتخفيف من هذه المشكلات، غالبًا ما يكون من المرغوب فيه إزالة عبارات DEFINER من ملف التفريغ. على الرغم من أنه ليس من الممكن منع إضافة المحددات إلى التفريغ أثناء عملية التصدير، إلا أنه من الممكن إزالتها بعد ذلك.

تقنيات الإزالة

بعد إنشاء ملف التعريف dump، يمكن استخدام عدة طرق لإزالة عبارات DEFINER:

  1. الإزالة اليدوية: استخدم محرر النصوص لتحديد موقع كافة مثيلات "DEFINER=root@localhost" واستبدالها بـ سلسلة فارغة "".
  2. Perl Script: قم بتحرير ملف التفريغ باستخدام برنامج Perl النصي. على سبيل المثال:
Perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3 ]\`//g" mydatabase.sql
perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
    أمر Sed:
  1. قم بتوصيل إخراج التفريغ من خلال أمر sed:
  2. mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > مشغلات_backup.sql
mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3