Oracle Database Role
نشر بواسطة : Obay Salah , November 19, 2024
تخيل معي أنك تعمل كمدير قاعدة بيانات مع أكثر من 1000 مستخدم، هؤلاء المستخدمون على مستويات مختلفة من الصلاحيات، لنفترض أنهم على خمسة مستويات.
ماذا تفعل إذن؟ هل تعطي كل مستخدم صلاحياته بشكل فردي؟ إذن تحتاج إلى عمل شاق طويل.
الحل ببساطة في ﺍلROLES.
الفكرة هي أنه يمكن دمج مجموعة من الصلاحيات في كائن واحد يسمى ROLE. السيناريو السابق هو لمدير قاعدة بيانات يدير قاعدة بيانات بها أكثر من 1000 مستخدم على مستويات مختلفة، وهي خمسة مستويات أبسط مما يمكنك تخيله. نحتاج إلى إنشاء خمسة ROLES ، ثم منح الصلاحيات لهذه ﺍلROLES وفقًا للمستويات ومن ثم منحها للمستخدمين.
هذا الحل يسهل علينا إدارة الصلاحيات. فبدلاً من إدارة أكثر من 1000 مستخدم، نحتاج إلى إدارة خمسة ROLES . أيضًا، عند تعديل أي من ﺍلROLES ، ينعكس التعديل تلقائيًا على المستخدمين.
هذا يجعل عملية التعديل أسهل بالنسبة لنا، كما تعمل هذه العملية على تحسين الأداة. لنفترض أننا نريد إنشاء ROLE جديد يسمى OBAY، ونمنح هذا الROLE بعض الأذونات، لتكن RESOURCE & CONNECT، وبعد ذلك نمنح هذا الدور للمستخدم TEST.
CREATE ROLE OBAY;
تجدر الإشارة إلى أن اسم ﺍلROLE يجب أن يكون فريدًا في قاعدة البيانات حتى لا يتم استخدام الاسم كمستخدم أو Role في قاعدة البيانات.
الآن نعطي هذا الدور بعض الأذونات.
GRANT CONNECT,RESOURCE TO OBAY;
نعطي هذا ﺍلROLE للمستخدم TEST.
GRANT OBAY TO TEST;
ملاحظة: يمكن تحديد خيار WITH ADMIN OPTION عند منح ﺍلROLE، حيث يسمح هذا الخيار للمستخدم بعد امتلاك ﺍلROLES بمنحها لمستخدمين آخرين.
ويمكن سحب ﺍلROLE من المستخدم بنفس الطريقة التي يتم بها سحب ﺍلSystem Privilege.
ويمكن أيضًا إجراء تعديلات على ﺍلROLES ، فلنفترض على سبيل المثال أننا نريد إنشاء كلمة مرور ﻟلROLE.
ALTER ROLE OBAY IDENTIFIED BY OBAY;
يمكن حذف ﺍلROLE باستخدام الأمر.
DROP ROLE OBAY;
عند حذف ﺍلROLE ، يقوم SERVER ORACLE تلقائيًا بحذف هذه ﺍلROLE من جميع المستخدمين الذين تم منحهم هذا ﺍلROLE .
Comments
لايوجد تعليق حتى الان