بتاريخ: 28 فبراير 200422 سنة comment_2284 السلام عليكملدي مشروع تقريباً انتهيت منه، لكن واجهتني مشكلة في الشاشة الأولى ألا وهي شاشة الدخول LOGONبدايتاً سوف أحاول أن أقوم بتقريب الفكرة وبعدها سوف أطرح السؤال..أولاً قمت بإنشاء جدول بإسم Users وبها ثلاثة أعمدة وهي: No (رقم الموظف)Name (اسم الموظف)Password (كلمة السر) ثم قمت بإنشاء شاشة يدوية غير مرتبطة بقاعدة البيانات Control Block وليست Basic وفيها أضفت Text Item وذلك لكي أقوم بوضع رقم الموظف فيها، وأضفت تريجر إذا كان الرقم موجود يقوم بعرض الإسم حقه في حقل Display Item وينتقل المؤشر على حقل آخر Text Item وفيها أقوم بوضع كلمة السر، أيضاً بها تريجر إذا تساوت مع البيانات في الجدول يقوم بالدخول على شاشة أخرى وهكذاالسؤال:الآن في الجدول Users يوجد Tow User فقط، وأريد أن أجعل الأول به كل الصلاحيات من حيث الإدخال والتعديل والحذف، أما الآخر فأريده أن يستعلم فقط.أرجوا أن تكون الفكرة وصلت..ملاحظة: بالنسبة للشاشة الأولى Logon متصلة بقاعدة بيانات للمستخدم Scott، وأنا أريده بعد أن ينتقل إلى الشاشة التالية أن يقطع الإتصال ويدخل بإسمه، فهل من طريقة لفعل ذلك... تقديم بلاغ
بتاريخ: 28 فبراير 200422 سنة comment_2290 اولا Ismaelللدخول الى الداتا بيز باى Username and passwordهذا هو الكود LOGON('Username','password@host name'); ثانيا السؤال المرتبط بالصلاحياتلو انت ماعندكش غير اثنين مستخدمينهاتعمل If statment فى التريجر When new form instance declare intNo number(1); begin select No into intNo from users ; -- تحدد المستخمين if intno = 1 then -- هنا منطقة الصلاحيات -- يعنى ممكن تجعل الازرر الخاصة بالاضافة و التعديل Visible = false او Enabeld = false else -- للمستخدم الاخر اى صلاحيات اخرى end if ; end; لو فية اى استفسار اخر احنا موجودين شكراً تم تعديل 28 فبراير 200422 سنة بواسطة John تقديم بلاغ
بتاريخ: 29 فبراير 200422 سنة comment_2346 تعليق واستفساراقول اولا واخيراً لكي تتصل بسرفر أوراكل ثم الداتابيز نفسها لابد منusername/passwordويكون له صلاحيات معينهفلو انا صنعت طريقه للدخول علي الفورم واكرر الدخول علي الفورم فقط وليس التغير في المستخدم الاساسي المتصل بالسرفر فيظل الصلاحيات هي هيفكيف تعطي صلاحيات لمستخدم داخل به علي الفورمه وهو ليس معرف لدي السرفرنرجوا التوضيح بكود منفذ تقديم بلاغ
بتاريخ: 29 فبراير 200422 سنة comment_2351 وعليكم السلام بالنسبة للتحكم في الصلاحيات على مستوى الفورم , تحتاج الى الجداول التاليةجدول المستخدمين user_no user_name user_pass جدول النماذج module_no module_name جدول ربط المستخدمين مع الشاشات (جدول الصلاحيات) user_no module_no is_view is_insert is_delete is_update الجدول الاخير هو الجدول المهم والذي يتم فيه تحديد صلاحيات كل مستخدم مع شاشة معينه (هل لدية صلاحية للعرض او الحذف او للتعديل او للادخال)القيم التي سوف تكون في حقول تحديد الصلاحية هي قيم رقمية (0 او 1)ملاحظة:هذه الطريقة سوف تمكننا من وضع صلاحية للمستخدم على مستوى الفورم ككل ,في بعض الاحيان تحتاج الى ان تكون الصلاحية على مستوى الblock او ال item (اي ان يكون المستخدم الفلاني لدية صلاحية للتعديل في كل الـblocks الموجوده في شاشة معينه ما عدا block معين ) وبالمثل يمكن ان توضع الصلاحية على مستوى الitem (اي ان يكون المستخدم لدية الصلاحية للتعديل او الاضافة في كل الitems ما عدى item معين)لعمل هذ نحتاج الى اضافة جدولين اخرين الاول جدول للـblocks ويكون details لجدول الmoduels والثاني جدول للـitems ويكون details لجدول الـblocksوالان يعدل جدول الصلاحيات بحث يتم اضافة حقلين جديدن هماblock_no item_no وبذلك نستطيع ان نحدد صلاحيات بصورة ادق تقديم بلاغ
بتاريخ: 1 مارس 200422 سنة comment_2418 جزاكم الله خير جميعاً ... كلام جميل جداً ... أخوكم الصغير عادل تقديم بلاغ
بتاريخ: 1 مارس 200422 سنة comment_2424 شـــــــــــــــــــكـــــــــــــــــــــــــ ــــرااااااااااااااااا جــــــــــــــــــــــــــــــــــــــــ ــــــــــــــــــونعـــلـــــى الـــــكــــود تقديم بلاغ
بتاريخ: 1 مارس 200422 سنة comment_2426 موضوع جميل ... و لكن الأجمل هو تفاعل الأعضاء للوصول للطريقة المثلى. أخوكم :سامر حداد تقديم بلاغ
بتاريخ: 2 مارس 200422 سنة comment_2466 السلام عليكم من خلال ما ذكر سابقا هناك اتجاه للاعتماد علي جداول تحتوي علي بيانات للتحكم في دخول الي الفورم وفي التعامل معها ايضاأولاً :اقول وما المانع ان اعتمد علي هذه الجداول للدخول علي الفورمه نفسها فقطواتحكم انا في المنطق البرمجي الذي تحتويه الفورمه بمعني هذه الفورمه لاتحتوي علي اي عبارة لإجراء حذف وبالتالي لايمكن الحذف باستخدام هذه الفورمهوهكذا بالنسبة للتعديل والإضافة والاختيارمع العلم بان المستخدم لهذه الفورمه لايستطيع الدخول علي اي فورمه اخري لان دخوله علي هذه الفورمه مبني في الاساس علي منطق البرمجة في هذه الفورمه فقط فقطوعند العمل بالمنطق هذا انا في غني عن جداول للصلاحيات شكراً تقديم بلاغ
بتاريخ: 2 مارس 200422 سنة comment_2467 انا من رائيي ان نقوم بعمل يوزر بواسطه الاوراكل اضمن واسهل وأمن من عمل جدول للمستخدمينتحياتي تقديم بلاغ
بتاريخ: 2 مارس 200422 سنة comment_2471 اهلا بكم وبكل اقتراحاتكمبالنسبة لاقتراح الاخ amr20 ممكن ان يكون كذلك اذا كانت الصلاحيات للمستخدمين هو الدخول للفورم او عدم الدخول فقط , ولكن في بعض الاحيان تحتاج الى ان تعمل صلاحيات لمستخدم معين بحيث يكون لديه صلاحية للدخول في الفورم واستعراض البيانات ولكن لا توجد لديه صلاحية للتعديل , وكذلك وبنفس المنطق تريد هذا المستخدم ان تكون لديه صلاحية التعديل والحذف والعرض بالنسبة لفورم اخر , او ان تكون لديه صلاحية للدخول في فورم معين بحيث يستطيع ان يستعرض البيانات وايضاً يستطيع ان يضيف ولكن ليس لديه صلاحية التعديل .... وهكذا . فلذلك تحتاج ان تعمل الجداول وان تحدد بها صلاحيات المستخدمين مع الشاشات .ضف الى ذلك انه في بعض الاحيان تحتاج الى ان تحدد صلاحيات على مستوى الـblock اي ان يكون المستخدم الفلاني لديه صلاحية في الشاشة الفلانية ولكن ليس كل الـblocks الموجوده في الشاشه اي ان يكون لديه صلاحية التعديل والحذف في الـblock المعين دوه الاخر , وهنا نحتاج الى جداول اضافية كما هو موضح في الكلام السابق .اما بالنسبة لاقتراح الاخ شبيــــه الريحكلامك صحيح مئة بالمئة لان عمل السكيرتي على الداتابيس هو اضمن وافضل , ولكن اتوقع ان عمل الصلاحيات من قاعدة البيانات لك مستخدم معين سوف يكون فيه نوع من الصعوبه , وخاصة عندما يكون لديك عدد كبير من المستخدمين , ولكن لا يمنع ان تحدد بعض صلاحيات الجداول المهمة كالجداول المالية وغيرها , وكذلك تعمل الصلاحية الاخرى من الفورم لانه سوف يكون اسهل , ضف الى ذلك انك عندما تعمل عدد من المستخدمين في الداتابيس وتعمل عدد من الـobjects في كل مستخدم سوف تواجه مشاكل كثيره في عملية الـexport والـimport , فانك حين تعمل export وimport مره ثانية سوف تجد ان معضم الـviews والـpackages تحتاج الى re-compile مره ثانية وخاصة الـobject الموجوده في مستخدم معين وهي تعتمد على مستخدم آخر . تقديم بلاغ
بتاريخ: 2 مارس 200422 سنة comment_2478 السلام عليكمشكرا ياشباب على هذا الموضوع الرائع وصراحة انا مع كلام الأستاذ خالد من ناحية عمل نظام الأمن بالإعتماد على نطام مستقل غيرالموجود في قاعدة البيانات خصوصا إذا كان هناك عدد كبير من الصلاحيات وهناك إختلاف كبير في الصلاحيات التي تعطى لكل مستخدم أي تعدد صلاحيات مستخدمين النظام ،أيضا هناك موضوع التراخيص والذي قد يكلف الشركة او المنشأة الكثير عند وجود عدد كبير من المستخدمين !! ارجوا من الجميع المشاركة في هذا الموضوع لكي نصل إلى خلاصة أيهما أفضل لإعتماد على نظام الأمن الموجود في قاعدة البيانات أو بناء نظام مستقل عنها؟؟ وتحياتي للجميع تقديم بلاغ
بتاريخ: 2 مارس 200422 سنة comment_2485 هلا والله اخوي خالدكلامك صحيح ولكن يوجد شي يسمى ROLE وهي مجموعه من الصلاحيات موضوعه في ROLE وهذى يسهل عمل الادمن كثيرفيقوم بأنشاء عدد من ROLE مثل واحده للأستعلام وواحده للتعديل وواحده للحذف وهكذاوبالطريقه هذى تصبح اسهل من عمل الجداول هذى من رائيوارجو ان نناقش هذى الموضوع لكي نصل إلى اقتناح احد الطرفين برائي الطرف الاخرمع خالص تحياتيشبيــــــــــه الريح تقديم بلاغ
بتاريخ: 8 مارس 200422 سنة comment_2869 انا مع راي عمل جداول للمستخدمين والصلاحياتوالتحكم في الصلاحيات من خلال الفورمخصوصا في البرامج التي لا تحتاج الى مستوى امن عالياضافة الى الصعوبات التي قد ذكرها الاخوةفان اضافة المستخدمين واعطاء الصلاحيات عن طريق الفورم قد تكون اسهل بالنسبة للمستخدم العادي تقديم بلاغ
بتاريخ: 8 مارس 200422 سنة comment_2897 هلا والله اخوي developerجميل جدا ان نقوم بمناقشه هذى الامر الهام جدا جداومن كلامك انه السبب الوحيد الذي جعلك تستخدم عملية انشاء جداول للمستخدمين هي صعوبة التحكم في اليوزر والصلاحيات الممنوحه عن طريق الفورموانا اقول لك هذى غير صحيح وهي من اسهل الاموروانا الان اقوم بتجهيز شرح شامل لطريقه التحكم بالمستخدمين من انشاء وحذف ومنح صلاحيات وغيرها من الامور الهامهوبأذن الله سوف يتغير رائيك ورائي باقي الاخوهتحياتي لكشبيــــــــــه الريح تقديم بلاغ
بتاريخ: 8 مارس 200422 سنة comment_2922 السلام عليكمسأقوم بشرح مختصر وبسيط لعمل ذلك.1. يجب أن يحوي البرنامج على واجهة لادخال اسماء المستخدمين وتعريف صلاحيات دخولهم، ويجب أن يكون الدخول إليها وفق صلاحيات، أما الدخول للمرة الأولى فلا يحتاج لأي صلاحية دخولويمكن ذلك بعمل select count(*) into v_users from users; 2. التأكد من ان اسم المستخدم موجود في الجدول بنفس الطريقة، وفي حال تطابق كلمة السر المدخلة مع كلمة السر المخزنة فيسمح له بالدخول للواجهة الرئيسية للبرنامج.3. التحكم بدخول المستخدم إلى واجهات البرنامج ويتم ذلك بتعريف صلاجيات دخوله، ويفضل تعريف رقمين للدخول لكل واجهة فمثلا من أجل الواجهة x يتم تعريف الرقمين 15 و 16 على سبيل المثالومن أجل الواجهة Y يتم تعريف الرقمين 17 و 18 ----- سأبين لماذا رقمين لاحقا.4. عند ضغط المستخدم على menu البرنامج يقوم البرنامج بفحص التالي:هل للمستخدم الموجود حالياً صلاحية دخول إلى الواجهة x والتي رقمها 15 في حال نعم السماح له بالدخول وبالوصول الكامل من حذف وتعديل واضافة + عرض queryأما في حال ان المستخدم ليس له صلاحية دخول إلى الواجهة x والتي رقمها 15 فهل له صلاحية دخول بالصلاحية رقم 16 وفي حال نعم يدخل المستخدم بوضع استعلام فقطوبفرض ان جدول تعريف الصلاحيات موجود بالاسم mod_priv وتعرف فيه كل واجهة بما يقابلها من أرقام صلاحيات الخاصة بهاوبفرض أيضا ان جدول الصلاحيات الممنوحة هو privs ويحوي على الاعمدة التالي:user_no اسم المستخدمprive_no الصلاحية الممنوحة لهفإنه يمكننا التأكد من صلاحية دخول مستخدم إلى واجهة ما بما يلي: declare v_mod_x number; begin select count(*) into v_mod_x from privs where user_no = global.user_no and prive_no = 15; if v_mod_x > 0 then call_form(x); else select count(*) into v_mod_x from privs where user_no = global.user_no and prive_no = 16; if v_mod_x > 0 then call_query(x); else message('you do not have privilege to enter this form'); end if; end; وذلك باعتبار ان global.user_no هو رقم المستخدم الذي دخل إلى البرنامج منذ البداية أرجو ان أكون قد افدتكم والسلام. تقديم بلاغ
بتاريخ: 9 مارس 200422 سنة comment_2936 شكر اخي شبيه الريح على ردك الجميلصعوبة التحكم بالمستخدمين من قبل المستخدم العادي ليس السبب الوحيد لدي ولكن اضافة الى الاسباب التي ذكرها الاخوةمثل زيادة عدد المستخدمين في الداتابيس وهذا يزيد من تكاليف الترخيص الذي يعتمد على عدد اليوزرسومنتظرين شرحك لكي تعم الفائدة وبارك الله فيكشكر اخي sam_t على هذا الشرح المفيد تقديم بلاغ
بتاريخ: 14 ديسمبر 201213 سنة comment_230116 ياجماعة الخير حد ممكن يعملنا فديو يشرح الكلام الجميل ده علشان نستفاد صح ونستطيع عمل اشياء جديدة ليست منقولة عنكم فانكم بارعون فى هذا وجذاكم الله خيرا تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.