إدارة المستخدمين والصلاحيات في MySQL
إنشاء وإدارة حسابات المستخدمين في MySQL
MySQL يسمح بإنشاء حسابات مستخدمين متعددة وإدارة حقوق الوصول لكل مستخدم.
إنشاء مستخدم جديد:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
username
: اسم المستخدم الجديد.host
: عنوان المضيف (يمكن أن يكونlocalhost
أو%
للسماح بالوصول من أي مضيف).password
: كلمة المرور الخاصة بالمستخدم.
مثال عملي:
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'secure_password';
- ينشئ مستخدمًا جديدًا باسم “user1” يمكنه الوصول فقط من
localhost
.
عرض جميع المستخدمين:
SELECT User, Host FROM mysql.user;
- يعرض قائمة بجميع المستخدمين الموجودين في MySQL.
تعديل كلمة المرور لمستخدم:
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
مثال عملي:
ALTER USER 'user1'@'localhost' IDENTIFIED BY 'new_secure_password';
- يغير كلمة المرور للمستخدم “user1”.
حذف مستخدم:
DROP USER 'username'@'host';
مثال عملي:
DROP USER 'user1'@'localhost';
- يحذف المستخدم “user1”.
تخصيص الصلاحيات لكل مستخدم
MySQL يسمح بالتحكم في الصلاحيات بناءً على احتياجات المستخدم.
إعطاء صلاحيات لمستخدم:
GRANT privileges ON database_name.table_name TO 'username'@'host';
privileges
: نوع الصلاحيات (مثلSELECT
،INSERT
،UPDATE
،DELETE
، أوALL PRIVILEGES
لكل الصلاحيات).database_name.table_name
: اسم قاعدة البيانات والجدول الذي ستطبق عليه الصلاحيات.
مثال عملي:
GRANT SELECT, INSERT ON school.students TO 'user1'@'localhost';
- يمنح المستخدم “user1” صلاحيات القراءة والإضافة على جدول “students” في قاعدة بيانات “school”.
إلغاء الصلاحيات:
REVOKE privileges ON database_name.table_name FROM 'username'@'host';
مثال عملي:
REVOKE INSERT ON school.students FROM 'user1'@'localhost';
- يلغي صلاحية الإضافة للمستخدم “user1”.
تطبيق الصلاحيات الجديدة:
FLUSH PRIVILEGES;
- يتم تحديث إعدادات الصلاحيات بعد إجراء تغييرات.
أفضل الممارسات لتأمين قواعد البيانات
- استخدام كلمات مرور قوية:
- تأكد من أن جميع حسابات المستخدمين لديها كلمات مرور معقدة وطويلة.
- تحديد الصلاحيات بناءً على الحاجة:
- لا تمنح صلاحيات أكثر من اللازم.
- قيد الوصول إلى قواعد البيانات والجداول التي يحتاجها المستخدم فقط.
- الحد من الوصول بناءً على المضيف:
- استخدم
localhost
إذا كان المستخدم يعمل فقط على الخادم المحلي. - قلل من استخدام
%
كعنوان مضيف.
- استخدم
- إلغاء حسابات المستخدمين غير المستخدمة:
- احذف أي حسابات مستخدمين لم تعد قيد الاستخدام باستخدام:
DROP USER 'username'@'host';
- احذف أي حسابات مستخدمين لم تعد قيد الاستخدام باستخدام:
- التشفير:
- استخدم الاتصال المشفر (SSL/TLS) لتأمين البيانات المنقولة بين المستخدم وقاعدة البيانات.
- مراقبة المستخدمين:
- راقب نشاط المستخدمين باستخدام سجل التدقيق (Audit Logs) لمراجعة العمليات المشبوهة.
باتباع هذه الممارسات، يمكنك ضمان أمان قواعد البيانات وتقليل المخاطر الناتجة عن سوء إدارة المستخدمين والصلاحيات.