لغة التحكم في البيانات
لغة التحكم بالبيانات ( DCL ) هي بنية نحوية مشابهة للغات البرمجة الحاسوبية ، تُستخدم للتحكم في الوصول إلى البيانات المخزنة في قاعدة البيانات ( التفويض ). وهي تحديدًا أحد مكونات لغة الاستعلامات البنيوية (SQL). تُعد لغة التحكم بالبيانات إحدى المجموعات المنطقية في أوامر SQL. SQL هي اللغة القياسية لأنظمة إدارة قواعد البيانات العلائقية. [ 1 ] تُستخدم عبارات SQL لتنفيذ مهام مثل إدراج البيانات في قاعدة البيانات، أو حذفها أو تحديثها، أو استرجاعها منها.
على الرغم من أن أنظمة قواعد البيانات تستخدم لغة SQL، إلا أنها تمتلك أيضًا امتدادات خاصة بها تُستخدم عادةً داخل أنظمتها فقط. على سبيل المثال، يستخدم خادم Microsoft SQL لغة Transact-SQL (T-SQL)، وهي امتداد للغة SQL. وبالمثل، يستخدم Oracle لغة PL-SQL، وهي امتداد خاص بـ Oracle للغة SQL. مع ذلك، يمكن استخدام أوامر SQL القياسية مثل "Select" و"Insert" و"Update" و"Delete" و"Create" و"Drop" لإنجاز جميع المهام تقريبًا المتعلقة بقاعدة البيانات.
تتضمن أمثلة أوامر DCL أوامر SQL التالية:
- منح صلاحية الوصول للمستخدمين المحددين لأداء مهام محددة.
- إلغاء صلاحية وصول المستخدم إلى كائن قاعدة البيانات .
تنطبق العمليات التي يمكن منح الامتيازات لها أو سحبها من مستخدم أو دور على كل من لغة تعريف البيانات (DDL) ولغة معالجة البيانات (DML)، وقد تشمل CONNECT و SELECT و INSERT و UPDATE و DELETE و EXECUTE و USAGE .
خادم مايكروسوفت SQL
يوجد في Microsoft SQL Server أربع مجموعات من أوامر SQL: [ 2 ]
- لغة معالجة البيانات (DML)
- لغة تعريف البيانات (DDL)
- لغة التحكم في البيانات (DCL)
- لغة التحكم في المعاملات (TCL)
تُستخدم أوامر DCL للتحكم في الوصول وإدارة صلاحيات المستخدمين في قاعدة البيانات. وبواسطتها، يمكننا بسهولة السماح أو منع بعض الإجراءات للمستخدمين على الجداول أو السجلات (أمان على مستوى الصف).
أوامر DCL هي: [ 2 ]
- منحة
- يمنح أذونات محددة للجدول (والكائنات الأخرى) أو يعين دورًا محددًا بأذونات معينة لمجموعات أو مستخدمين محددين لقاعدة البيانات؛
- إلغاء
- يزيل أذونات محددة للجدول (والكائنات الأخرى) إلى، أو يزيل دورًا محددًا بأذونات معينة إلى، مجموعات أو مستخدمين محددين لقاعدة البيانات؛
- ينكر
- يرفض منح إذن محدد لكائن أمني.
على سبيل المثال: يمكن استخدام GRANT لمنح امتيازات للمستخدم للقيام بعمليات SELECT و INSERT و UPDATE و DELETE على جدول معين أو جداول متعددة.
يُستخدم أمر REVOKE لسحب امتياز (افتراضيًا) أو إلغاء أمر محدد مثل UPDATE أو DELETE بناءً على المتطلبات.
مثال
منح المستخدم User1 صلاحيات SELECT و INSERT و UPDATE و DELETE على جدول الموظفين .إلغاء أمر الإضافة من جدول الموظفين إلى المستخدم 1رفض تحديث معلومات الموظفين للمستخدم 1في المثال الأول، يمنح الأمر GRANT امتيازات للمستخدم User1 للقيام بعمليات SELECT و INSERT و UPDATE و DELETE على الجدول المسمى Employees.
في المثال الثاني، يقوم الأمر REVOKE بإزالة صلاحيات المستخدم User1 لاستخدام أمر INSERT على جدول الموظفين.
الأمر DENY هو أمر محدد. نستنتج من ذلك أن لكل مستخدم قائمة بالصلاحيات الممنوحة أو الممنوعة، لذا فإن الأمر DENY موجود لحظر بعض الصلاحيات بشكل صريح على كائنات قاعدة البيانات.
قاعدة بيانات أوراكل
تقسم قاعدة بيانات أوراكل أوامر SQL إلى أنواع مختلفة. وهي:
- عبارات لغة تعريف البيانات (DDL)
- عبارات لغة معالجة البيانات (DML)
- بيانات التحكم في المعاملات
- بيانات التحكم في الجلسة
- بيان التحكم في النظام
- عبارات SQL المضمنة
للحصول على التفاصيل، راجع Oracle- [ 3 ] TCL
تتيح لك عبارات لغة تعريف البيانات (DDL) تنفيذ هذه المهام:
- إنشاء كائنات المخطط وتعديلها وحذفها
- منح وإلغاء الامتيازات والأدوار
- تحليل المعلومات الموجودة في جدول أو فهرس أو مجموعة
- تحديد خيارات التدقيق
- أضف تعليقات إلى قاموس البيانات
لذا فإن أوامر DDL لقاعدة بيانات Oracle تتضمن امتيازات منح وإلغاء الامتيازات والتي تعتبر في الواقع جزءًا من لغة التحكم في البيانات في خادم Microsoft SQL.
مثال
GRANT SELECT , INSERT , UPDATE , DELETE ON db1 . Employee TO user1 ;إلغاء عمليات التحديد والإدراج والتحديث والحذف في قاعدة البيانات db1.Employee من المستخدم user1 ؛عبارات التحكم في المعاملات في أوراكل
تُدير عبارات التحكم في المعاملات التغييرات التي تُجريها عبارات لغة معالجة البيانات (DML). عبارات التحكم في المعاملات هي:
- يقترف
- التراجع
- نقطة حفظ
- تحديد المعاملة
- تعيين القيد
MySQL
يقوم خادم MySQL بتقسيم عبارات SQL إلى أنواع مختلفة من العبارات
- بيانات تعريف البيانات
- بيانات معالجة البيانات
- بيانات المعاملات وبيانات القفل
- عبارات النسخ
- البيانات المعدة مسبقاً
- بناء جملة العبارة المركبة
- بيانات إدارة قواعد البيانات
- بيانات المرافق
- بيانات إدارة الحساب
للحصول على التفاصيل، راجع عبارات المعاملات في MySQL [ 4 ]
تُعد بيانات المنح والإلغاء جزءًا من بيانات إدارة الحساب.
تُمكّن عبارة GRANT مسؤولي النظام من منح الصلاحيات والأدوار، والتي يمكن منحها لحسابات المستخدمين وأدوارهم. وتُطبّق قيود الصيغة التالية:
- لا يمكن استخدام أمر GRANT لمنح الصلاحيات والأدوار معًا في نفس العبارة. يجب أن تمنح عبارة GRANT إما الصلاحيات أو الأدوار.
- تُحدد عبارة ON ما إذا كان البيان يمنح امتيازات أو أدوارًا:
- عند تفعيل هذا الخيار، يمنح البيان امتيازات.
- بدون تفعيل الأمر ON، يمنح البيان الأدوار.
- يُسمح بتعيين كل من الامتيازات والأدوار لحساب واحد، ولكن يجب عليك استخدام عبارات GRANT منفصلة، كل منها بصيغة مناسبة لما سيتم منحه.
تتيح عبارة REVOKE لمسؤولي النظام إلغاء الامتيازات والأدوار، والتي يمكن إلغاؤها من حسابات المستخدمين والأدوار.
أمثلة
إلغاء عملية الإدراج على جميع البيانات من 'jeffrey' على 'localhost' ؛REVOKE 'role1' , 'role2' FROM 'user1' @'localhost' , 'user2' @'localhost' ;إلغاء الاستعلام SELECT على world . * من 'role3' ؛GRANT ALL ON db1 . * TO 'jeffrey' @'localhost' ;GRANT 'role1' , 'role2' TO 'user1' @'localhost' , 'user2' @'localhost' ;GRANT SELECT ON world . * TO 'role3' ;في PostgreSQL ، يكون تنفيذ أوامر DCL عملية معاملية ، ويمكن التراجع عنها.
تُستخدم عبارات SQL الخاصة بـ Grant و Revoke للتحكم في الامتيازات الممنوحة للمستخدمين في قواعد البيانات.
لا يحتوي SQLite على أي أوامر DCL لأنه لا يحتوي على أسماء مستخدمين أو تسجيلات دخول. بدلاً من ذلك، يعتمد SQLite على أذونات نظام الملفات لتحديد من يمكنه فتح قاعدة البيانات والوصول إليها. [ 5 ]
انظر أيضاً
مراجع
- ↑ "معيار SQL – ISO/IEC 9075:2016 (ANSI X3.135) – مدونة ANSI" . مدونة ANSI . 2018-10-05 . تاريخ الاطلاع: 2020-09-19 .
- 1 2 لوف، أوبراي (28 مارس 2023). "تعريف عبارات SQL، والبيانات، والأوامر، والتعبيرات، والدفعات" . MSSQLTips . تم الاسترجاع في 26 يناير 2025 .
- ↑ "مرجع لغة SQL لقواعد البيانات" . docs.oracle.com . تم الاطلاع عليه بتاريخ 19-09-2020 .
- ↑ "MySQL :: دليل مرجعي لـ MySQL 8.0 :: 13.7.1 بيانات إدارة الحساب" . dev.mysql.com . تم الاطلاع عليه بتاريخ 19-09-2020 .
- ↑ Kreibich, JA, 2010. Using SQLite , O'Reilly.
- نمذجة البيانات
- SQL
- أنظمة إدارة قواعد البيانات
