انتقل إلى محتوى الدرس

User and Host Identity Pair هوية المستخدم والمضيف معاً

تعلّم إدارة حسابات المستخدمين والمصادقة في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
7 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 صورة توضيحية
مخطط توضيحي لدرس إدارة حسابات المستخدمين والمصادقة في MySQL
مخطط توضيحي لدرس إدارة حسابات المستخدمين والمصادقة في MySQL

على خلاف الأنظمة التي تكتفي باسم المستخدم وحده، يعرّف خادم MySQL 8 هوية كل حساب كزوج متلازم يتكون من اسم المستخدم واسم المضيف بالصيغة القياسية 'user_name'@'host_name'. ولهذا فإن الحساب 'shop_app'@'localhost' والحساب 'shop_app'@'10.0.1.25' يُعدان حسابين منفصلين تماماً في جدول النظام mysql.user:

  • 'user'@'localhost': يطابق الاتصالات المحلية الصادرة من نفس الخادم فقط.
  • 'user'@'10.0.1.%': يستخدم رمز المطابقة % لتقييد الاتصال بخوادم التطبيق الواقعة ضمن الشبكة الفرعية الداخلية 10.0.1.x حصراً.
  • 'user'@'%': يسمح بالاتصال من أي عنوان IP (شائع في بيئات الحاويات السحابية ويجب حمايته بجدار ناري وشبكة خاصة).
  • SELECT USER(), CURRENT_USER();: تعرض دالة USER() الهوية التي أرسلها العميل عند الاتصال، بينما تعرض CURRENT_USER() الحساب الفعلي المسجل في جدول الصلاحيات الذي طابق الجلسة.
+--------------------+--------------------+
| client_connection  | matched_account    |
+--------------------+--------------------+
| root@localhost     | root@localhost     |
+--------------------+--------------------+
SQL
SELECT USER() AS client_connection,
       CURRENT_USER() AS matched_account;

SELECT User, Host, plugin, account_locked
FROM mysql.user
ORDER BY User, Host;