لغة التحكم في البيانات (DCL)

منح وإبطال وأقفل قاعدة بيانات الأذونات

لغة تحكم البيانات (DCL) هي مجموعة فرعية من لغة الاستعلام الهيكلية (SQL) وتسمح لمسؤولي قواعد البيانات بتكوين الوصول للأمان إلى قواعد البيانات العلائقية. وهو يكمل لغة تعريف البيانات (DDL) ، والتي تستخدم لإضافة وحذف كائنات قاعدة البيانات ، و لغة معالجة البيانات (DML) المستخدمة لاسترداد محتويات قاعدة البيانات وإدراجها وتعديلها.

DCL هي أبسط مجموعات SQL الفرعية ، حيث تتكون من ثلاثة أوامر فقط: GRANT و REVOKE و DENY. توفر هذه الأوامر الثلاثة ، معًا ، للمشرفين المرونة في تعيين أذونات قواعد البيانات وإزالتها بطريقة فائقة الدقة.

إضافة أذونات باستخدام أمر GRANT

يتم استخدام الأمر GRANT بواسطة المسؤولين لإضافة أذونات جديدة إلى مستخدم قاعدة البيانات . يحتوي على بناء جملة بسيط للغاية ، ويعرف على النحو التالي:

GRANT [امتياز] ON [object] TO [user] [WITH GRANT OPTION]

إليك المستلم على كل معلمة يمكنك توفيرها باستخدام هذا الأمر:

على سبيل المثال ، افترض أنك ترغب في منح المستخدم جو القدرة على استرداد المعلومات من جدول الموظفين في قاعدة بيانات تسمى HR. قد تستخدم الأمر SQL التالي:

منحة SELECT ON HR.employees TO Joe

سوف يكون لدى Joe الآن القدرة على استرداد المعلومات من جدول الموظفين. ومع ذلك ، لن يتمكن من منح المستخدمين الآخرين الإذن باسترداد معلومات من هذا الجدول لأنك لم تقم بتضمين عبارة WITH GRANT OPTION في عبارة GRANT.

إبطال الوصول إلى قاعدة البيانات

يتم استخدام الأمر REVOKE لإزالة الوصول إلى قاعدة البيانات من مستخدم سبق منح مثل هذا الوصول. يتم تعريف بناء الجملة لهذا الأمر على النحو التالي:

REVOKE [GRANT OPTION FOR] [permission] ON [object] FROM [user] [CASCADE]

ها هي المتحول على المعلمات لأمر REVOKE:

على سبيل المثال ، يلغي الأمر التالي الإذن الممنوح لجو في المثال السابق:

إعادة اختيار SELECT ON HR.employees من جو

صراحة رفض الوصول إلى قاعدة البيانات

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

DENY [permission] ON [object] to [user]

تكون المعلمات للأمر DENY مماثلة لتلك المستخدمة في أمر GRANT.

على سبيل المثال ، إذا كنت ترغب في ضمان عدم تلقي ماثيو مطلقًا إمكانية حذف المعلومات من جدول "الموظفين" ، فقم بإصدار الأمر التالي:

رفض حذف على HR.employees إلى ماثيو