SQL Server - Section2 - الصلاحيات: GRANT, REVOKE, DENY في SQL Server

الصلاحيات: GRANT, REVOKE, DENY في SQL Server

في SQL Server، تُستخدم أوامر GRANT و REVOKE و DENY لإدارة صلاحيات الوصول للمستخدمين على مستوى الجداول، القواعد، والإجراءات.


🟢 GRANT – منح صلاحية

يُستخدم الأمر GRANT لمنح المستخدم أو الدور حق تنفيذ أمر معين، مثل القراءة من جدول أو تنفيذ إجراء مخزن.


GRANT SELECT ON Customers TO mahmoud;

⬅ يمنح المستخدم mahmoud صلاحية SELECT على جدول Customers.


🛑 DENY – منع صلاحية

يُستخدم DENY لمنع مستخدم من تنفيذ إجراء معين، حتى لو كان له صلاحية عن طريق دور آخر.


DENY SELECT ON Customers TO mahmoud;

⬅ يمنع المستخدم mahmoud من استخدام SELECT على جدول Customers.


🔄 REVOKE – سحب الصلاحية

يُستخدم REVOKE لإزالة صلاحية تم منحها سابقًا باستخدام GRANT أو DENY.


REVOKE SELECT ON Customers FROM mahmoud;

⬅ يُزيل أي صلاحية SELECT كانت ممنوحة أو ممنوعة على المستخدم mahmoud.


📋 صلاحيات شائعة في SQL Server

الصلاحية الوصف
SELECT قراءة البيانات من جدول أو View
INSERT إدخال بيانات جديدة
UPDATE تعديل بيانات موجودة
DELETE حذف البيانات
EXECUTE تشغيل إجراء مخزن أو دالة

🧠 ملاحظات مهمة

  • DENY يتغلب على GRANT – إذا تم منحهما معًا.
  • REVOKE لا يمنع، بل يُزيل الصلاحية فقط.
  • تستطيع منح أو سحب صلاحيات من مستخدم أو Role.
  • بعض الصلاحيات تكون على مستوى السيرفر، مثل CREATE DATABASE.

🔐 استخدام الأدوار Roles

يمكنك منح الصلاحيات لمجموعة مستخدمين من خلال دور Role بدلاً من كل مستخدم على حدة.


GRANT SELECT ON Customers TO db_datareader;

⬅ يمنح جميع أعضاء الدور db_datareader صلاحية القراءة من جدول Customers.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework