السلام عليكم ورحمة الله وبركاتة
في الحقيقة انا عضو قديم نوعا ما وكنت اكتفي بمتابعة ما يطرح علي هذه الساحة المباركة من اشياء قيمة جدا
حقيقة كنت اجهل البعض منها وقد اثرت علي نفسى بان اقوم بعمل بسيط ولكنه مهم ارجوا من الله ان تتقبلوه بصدر رحب الا وهو التحقق من صلاحيات المستخدم قبل تنفيذ الفورم او البرنامج بشكل كامل
ان اردت ان تكون علي مستوي من العمل فعليك ان تنشئ Role وتعطي هذا ال Role ما تريد من صلاحيات
وكن دائما بخيلا في الصلاحيات واياك ان تفرط بالصلاحيات لان المسؤولية جسيمة
ما علينا
سنقوم بإنشاء Role ونعطيه صلاحيات محدودة ومن ثم نمنح هذا ال Role الي المستخدمين ذوى الشأن
سنذهب الي sql
شغل ال sql وادخل الي قاعدة البيانات كمدير لها (DBA)
sql>create role moh1 ;
في هذه الخطوة انشانا روول واعطيناه اسم moh1
Sql>grant connect, resource to moh1;
في هذه الخطوة تم منح moh1 صلاحيات الاتصال الي قاعدة البيانات و مصادرها
نريد ان ننشئ مستخدم وليكن اسمه salem ونريد ان نمنحه هذا ال Role نتبع الاتي
SQL> create user salem identified by salem;
الخطوة الاولي انشاء المستخدم
SQL> grant moh1 to salem;
في هذه الخطوة تم منح المستخدم الصلاحيات المعطاة الي ال Role
طبعا هناك الكثير مثل منح ال Role صلاحيات علي Table معين وبأمكانك ايضا اعطاء صلاحيات علي حقل في جدول
بعد ان فرغنا من انشاء ال role اغلق ال sql كالتالى
Sql>exit
اذهب وشغل Forms Builder وعلي مستوي ال MODULE انشئ Trigger واختر من
ال code triggers الحدث pre-form ومن ثم اضغط علي زر الماوس الايمن واختر pl/sql editor
ومن ثم اكتب التالي
declare
x number;
begin
if not(DBMS_SESSION.IS_ROLE_ENABLED('ADMINISTRATIVE')) or
(DBMS_SESSION.IS_ROLE_ENABLED ('moh1'))
then
x:=show_alert('check_user');
PAUSE;
RAISE form_trigger_failure;
end if;
end;
ومن ثم اختار compile و اغلاق
شرح الكود
تعريف متغير اسمه x من نوع رقمى وذلك لاسناد الرسالة التي ستظهر للمستخدم عندما لايكون لديه صلاحيات للدخول الي البرنامج
بعد ذلك يتم فحص اسم المستخدم اذا كان ضمن الRole الاول وهو ال ADMINISTRATIVE
او ال Role الاخر وهو موضوعنا Moh1 يتم الدخول الي البرنامج والعكس صحيح
كيف؟
اذا كان اسم المستخدم غير موجود في الروول ADMINISTRATIVE او moh1 فستظهر رسالة تخبره بأنه ليس معك صلاحيات للدخول وينم انهاء البرنامج وتفريغه من الذاكرة بذلك تكون قد ضمنت عدم دخول غير المسموح لهم الي النظام.
اذا كان هناك ايه مشاكل في انشاء الرسالة او (Alert) فأنا علي استعداد تام لتوضيحها وشرحها بالصور ايضا
مجرد البداية ان شاء الله.
ارجوا ان اكون قد وفقت في هذا
والسلام عليكم ورحمة الله وبركاته