منح وإبطال وأقفل قاعدة بيانات الأذونات
لغة تحكم البيانات (DCL) هي مجموعة فرعية من لغة الاستعلام الهيكلية (SQL) وتسمح لمسؤولي قواعد البيانات بتكوين الوصول للأمان إلى قواعد البيانات العلائقية. وهو يكمل لغة تعريف البيانات (DDL) ، والتي تستخدم لإضافة وحذف كائنات قاعدة البيانات ، و لغة معالجة البيانات (DML) المستخدمة لاسترداد محتويات قاعدة البيانات وإدراجها وتعديلها.
DCL هي أبسط مجموعات SQL الفرعية ، حيث تتكون من ثلاثة أوامر فقط: GRANT و REVOKE و DENY. توفر هذه الأوامر الثلاثة ، معًا ، للمشرفين المرونة في تعيين أذونات قواعد البيانات وإزالتها بطريقة فائقة الدقة.
إضافة أذونات باستخدام أمر GRANT
يتم استخدام الأمر GRANT بواسطة المسؤولين لإضافة أذونات جديدة إلى مستخدم قاعدة البيانات . يحتوي على بناء جملة بسيط للغاية ، ويعرف على النحو التالي:
GRANT [امتياز] ON [object] TO [user] [WITH GRANT OPTION]إليك المستلم على كل معلمة يمكنك توفيرها باستخدام هذا الأمر:
- يمكن أن يكون الامتياز إما الكلمة الرئيسية ALL (لمنح مجموعة متنوعة من الأذونات) أو إذن قاعدة بيانات محدد أو مجموعة من الأذونات. تتضمن الأمثلة إنشاء قاعدة بيانات ، تحديد ، إدراج ، تحديث ، حذف ، تنفيذ و إنشاء عرض.
- يمكن أن يكون الكائن أي كائن قاعدة البيانات. تختلف خيارات الامتياز الصالحة بناءً على نوع كائن قاعدة البيانات الذي قمت بتضمينه في هذه الفقرة. عادةً ما يكون الكائن إما قاعدة بيانات أو دالة أو إجراء مخزن أو جدول أو طريقة عرض.
- يمكن للمستخدم أن يكون أي مستخدم قاعدة بيانات. يمكنك أيضًا استبدال دور للمستخدم في هذه الفقرة إذا كنت ترغب في استخدام أمان قاعدة البيانات المستند إلى الدور.
- إذا قمت بتضمين جملة WITH GRANT OPTION الاختيارية في نهاية أمر GRANT ، فإنك لن تمنح المستخدم المحدد الأذونات المحددة في عبارة SQL فحسب ، بل تمنح المستخدم أيضًا القدرة على منح هذه الأذونات نفسها لمستخدمي قاعدة البيانات الآخرين. لهذا السبب ، استخدم هذه الفقرة بحذر.
على سبيل المثال ، افترض أنك ترغب في منح المستخدم جو القدرة على استرداد المعلومات من جدول الموظفين في قاعدة بيانات تسمى 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:
- يحدد الإذن أذونات قاعدة البيانات المراد إزالتها من المستخدم المحدد. يلغي الأمر تأكيدات GRANT و DENY التي تم إجراؤها مسبقًا للحصول على الإذن المحدد.
- يمكن أن يكون الكائن أي كائن قاعدة البيانات. تختلف خيارات الامتياز الصالحة بناءً على نوع كائن قاعدة البيانات الذي قمت بتضمينه في هذه الفقرة. عادةً ما يكون الكائن إما قاعدة بيانات أو دالة أو إجراء مخزن أو جدول أو طريقة عرض.
- يمكن للمستخدم أن يكون أي مستخدم قاعدة بيانات. يمكنك أيضًا استبدال دور للمستخدم في هذه الفقرة إذا كنت ترغب في استخدام أمان قاعدة البيانات المستند إلى الدور.
- تقوم عبارة GRANT OPTION FOR بإزالة قدرة المستخدم المحددة على منح الإذن المحدد للمستخدمين الآخرين. ملاحظة : إذا قمت بتضمين عبارة GRANT OPTION FOR في عبارة REVOKE ، لا يتم إبطال الإذن الأساسي. هذا البند يلغي فقط القدرة على منح.
- يلغي خيار CASCADE أيضًا الإذن المحدد من أي مستخدم منحه المستخدم المحدد الإذن.
على سبيل المثال ، يلغي الأمر التالي الإذن الممنوح لجو في المثال السابق:
إعادة اختيار SELECT ON HR.employees من جوصراحة رفض الوصول إلى قاعدة البيانات
يتم استخدام الأمر DENY لمنع المستخدم صراحة من الحصول على إذن معين. يعتبر هذا مفيدًا عندما يكون المستخدم عضوًا في دور أو مجموعة ممنوحة إذنًا ، وتريد منع هذا المستخدم الفردي من توريث الإذن عن طريق إنشاء استثناء. بناء الجملة لهذا الأمر هو كما يلي:
DENY [permission] ON [object] to [user] تكون المعلمات للأمر DENY مماثلة لتلك المستخدمة في أمر GRANT.
على سبيل المثال ، إذا كنت ترغب في ضمان عدم تلقي ماثيو مطلقًا إمكانية حذف المعلومات من جدول "الموظفين" ، فقم بإصدار الأمر التالي: