حماية قواعد البيانات وصلاحيات المستخدمين, أجعل برامجك أكثر تطور وحماية ومتانة
![]() ![]() ![]() |
حماية قواعد البيانات وصلاحيات المستخدمين, أجعل برامجك أكثر تطور وحماية ومتانة
| أمجد جمالي |
Apr 2 2005, 03:35 PM
مشاركة
#1
|
|
عضو جديد المجموعة: اعضاء جدد المشاركات: 18 التسجيل: 26-January 05 رقم العضوية: 40,464 |
السلام عليكم ورحمة الله وبركاته
مسألة حماية قواعد البيانات من اكثر المهام اهمية وأولوية بالنسبة للمبرمج وهناك وجهان رئيسيان لحماية قواعد البيانات الاول متعلق بك انت كمبرمج وكيفية حماية حقوقك الفكرية والثاني متعلق بالعميل المستخدم للبرنامج وكيفية منح الصلاحيات للمستخدمين في موضوعي رح اتناول المفهوم الثاني للحماية بالتفصيل وبالشرح الممل ومدعوم بالأمثلة وبإذن الله رح حط كل خبرتي في هذا المجال هون في هذا الموضوع ولن ابخل بأي شيء. اما بالنسبة للمفهوم الأول من الحماية اترك لكم مهمة البحث في قسم خلاصة المشاركات وهي وافية وكافية. الدرس رح يتضمن الخطوات التالية وسوف اتناولها كما هي مرتبة أدناه التخطيط للحماية ماهي الصلاحيات التي يجب ان اعدها كيف اتجنب الأخطاء الشائعة الموجودة في نظام الحماية الحماية على مستوى المستخدمون والمجموعات (نظام الأمان الحقيقي) من واقع تجربة برمجة الحماية والشفرة مكتوبة بواسطة ADO Programming Security with ADO ولن اترك اي sector او سطر كود الا وسوف اشرحه بإذن الله شكراً يتبع -------------------- هدية لأعضاء المنتدى تصاميم على الأكسيس
إرسال الإيملات باستخدام SMTP, بدون اي Third Party انشاء قوائم Menu بالكود والقوائم الفرعية SubMenu انشاء قوائم Menu بالكود والقوائم الفرعية نسخة محدثة طريقة التعامل مع جميع الكنترول في الفورم تحديد إحداثيات الماوس على الفورم اظهار رسالة للمستخدم عند قرب انتهاء تاريخ معين طريقة عمل نسخة إحتياطية لقواعد البيانات مدعومه بالصور كيفية الربط بين برنامج أكسيس فى مكانين مختلفين مدعومه بالكود والأمثلة والصور بالإرادة والتصميم تتحقق المعجزات من أقوال الرئيس حافظ الأسد رحمه الله |
| أمجد جمالي |
Apr 2 2005, 03:44 PM
مشاركة
#2
|
|
عضو جديد المجموعة: اعضاء جدد المشاركات: 18 التسجيل: 26-January 05 رقم العضوية: 40,464 |
السلام عليكم ورحمة الله وبركاته
بسم الله نبدأ 1-التخطيط للحماية: 1-تصنيف المستخدمين الى مجموعات كل مستخدم ينتمي الى مجموعة عمل مثال على ذلك مجموعة المحاسبة مجموعة مدخلين البيانات مجموعة المشرفين 2-توزيع الصلاحيات على المجموعات وتجنب اخي الكريم تجنب توزيع الصلاحيات على لكل مستخدم على حدا لأنه من السهل توزيع الصلاحيات على اربع او خمس مجموعات ونسبة وقوع الخطأ تكون 5-10 % ومن الصعب ضبط و توزيع الصلاحيات عى 30 مستخدم أو اكثر تكون نسبة الخطأ تتجاوز 50% وهذه من واقع تجربة 3-برمجة نموزج تسجيل دخول الى البرنامج تتألف من ثلاثة خالنات أسم المستخدم أسم مجموعة العمل خانة إدخال كلمة المرور 3-حماية البيانات من التعديل والحذف او الوصول اليها من المستخدمين 4-التحقق من خصائص النظام قبل الدخول الى البرنامج 5-منع الوصول الى بعض النمازج من خلال حماية القوائم 6-عمل مخطط للصلاحيات للرجوع إليها مستقبلاً كما هو موضح في الصورة ![]() 7-النسخ الإحتياطي الألي لقواعد البيانات حماية البيانات من التعديل او الحذف او حتى الإطلاع عليها من قبل المستخدمين تأتي بالدرجة الأولى بالنسبة لي ولا أبالغ عندما أقول بأنه قد أصابني هوس بخصوص هذا الموضوع لذلك سوف أتناول حماية الجداول والاإستعلامات في الفترة الحالية واليك هذه الأوامر من مكتبة Dao في الكلاس PermaissionEnum CODE dbSecCreate dbSecDBAdmin dbSecDBCreate dbSecDBExclusive dbSecDBOpen dbSecDelete dbSecDeleteData dbSecFullAccess dbSecInsertData dbSecNoAccess dbSecReadDef dbSecReadSec dbSecReplaceData dbSecRetrieveData dbSecWriteDef dbSecWriteOwner dbSecWriteSec هذه الأوامر لحماية او ازالة الحماية من الجداول الإستعلامات النماذج التقارير والماكرو والذي سوف أتناوله الأن الاأوامر الخاصة بالجداول واللإستعلامات وهي CODE dbSecFullAccess "إضافة او إزالة جميع الإذونات" dbSecInsertData "إضافة أو إزالة خاصية إدخال البيانات" dbSecReadDef "إضافة أو إزالة خاصية قرائة التصميم" dbSecRetrieveData "إضافة أو إزالة خاصية الوصول أو قراءة البيانات" dbSecReplaceData "إضافة أو إزالة خاصية التعديل على البيانات" dbSecDeleteData "إضافة أو إزالة خاصية حذف البيانات" بإمكانك تجربة إضافة أو إزالة الأذونات عن طريق الكود في المثال الذي سوف أرفقه لاحقاً كما بإمكانك من خلال الأكسيس إضافة أو إزالة الصلاحيات كما هو موضح في الصورة لكن عيب هذه الطريقة وهو في حال نقل قاعدة البيانات الى جهاز اخر يترتب عليك توزيع الصلاحيات من جديد والكثير من العيوب الإخرى شكراً يتبع -------------------- هدية لأعضاء المنتدى تصاميم على الأكسيس
إرسال الإيملات باستخدام SMTP, بدون اي Third Party انشاء قوائم Menu بالكود والقوائم الفرعية SubMenu انشاء قوائم Menu بالكود والقوائم الفرعية نسخة محدثة طريقة التعامل مع جميع الكنترول في الفورم تحديد إحداثيات الماوس على الفورم اظهار رسالة للمستخدم عند قرب انتهاء تاريخ معين طريقة عمل نسخة إحتياطية لقواعد البيانات مدعومه بالصور كيفية الربط بين برنامج أكسيس فى مكانين مختلفين مدعومه بالكود والأمثلة والصور بالإرادة والتصميم تتحقق المعجزات من أقوال الرئيس حافظ الأسد رحمه الله |
| أمجد جمالي |
Apr 2 2005, 03:47 PM
مشاركة
#3
|
|
عضو جديد المجموعة: اعضاء جدد المشاركات: 18 التسجيل: 26-January 05 رقم العضوية: 40,464 |
مرفق الكود الخاص بإضافة وإزالة الصلاحيات برمجياً مع الشرح
الدالة Ap_AssignPermissionAdd تقوم بإضافة الصلاحيات والدالة Ap_AssignPermissionRemove تقوم بإزالة الصلاحيات عليك تمرير 4 بارمترات عند تجربة أي دالة من الدالاتين وهي 1-أسم المستخدم أو أسم المجموعة(الخاصة بالأوفيس وليس شاشة التسجيل الدخول) 2-أسم الكائن وليكن اسم الجدول او اسم الاستعلام 3-نوع الكائن جدول او نموزج اوتقرير 4-اسم الصلاحية التي تريد اعدادها للمستخدم او المجموعة هذا هو الكود مع الشرح CODE Public Function Ap_AssignPermissionAdd(StrUserName, StrObjectName, StrObjectType, FlgPermission) '-- StrUserName Parameter Accepting UserName or Group Name '-- StrObjectName Parameter Means Table Name or Quiry name '-- StrObjectType Parameter Means Tables,Quires,Forms,Reports And Macros '-- FlgPermission Parameter Can be Any of Security Permission Constants On Error GoTo ErrAssignPermissionAdd Dim Db As Database Dim Con As Container Dim Doc As Document '-- Take The Object Type and Object Name Parameters to Find The Object Set Db = CurrentDb Set Con = Db.Containers(StrObjectType) Set Doc = Con.Documents(StrObjectName) '-- Set The User or Group Doc.UserName = StrUserName '-- Does The Actual Sending of The Permission Doc.Permissions = Doc.Permissions Or FlgPermission '-- Function Complete Successfully Exit Function ErrAssignPermissionAdd: DisplayMessageCritical "Function 'Ap_AssignPermissionAdd' did not complete successfully.", "Error Message" Exit Function End Function CODE Public Function Ap_AssignPermissionRemove(StrUserName, StrObjectName, StrObjectType, FlgPermission) On Error GoTo ErrAssignPermissionRemove Dim Db As Database Dim Con As Container Dim Doc As Document Set Db = CurrentDb Set Con = Db.Containers(StrObjectType) Set Doc = Con.Documents(StrObjectName) Doc.UserName = StrUserName Doc.Permissions = Doc.Permissions And Not FlgPermission Exit Function ErrAssignPermissionRemove: DisplayMessageCritical "Function 'Ap_AssignPermissionRemove' did not complete successfully.", "Error Message" Exit Function End Function مثال على إضافة جميع الصلاحيات للمستخدم الموجود حالياً على الجدول TblUser CODE Ap_AssignPermissionAdd CurrentUser ,"TblUser","Tables",dbSecFullAccess مثال على إزالة جميع الصلاحيات لمستخدم يدعى Amjad من الجدول TblUser CODE Ap_AssignPermissionRemove "Amjad" ,"TblUser","Tables",dbSecFullAccess للتحقق من أن الكود يعمل جيداً إذهب إلى User And Group Permission كما هو موضح في الصورة وتأكد من ذلك -------------------- هدية لأعضاء المنتدى تصاميم على الأكسيس
إرسال الإيملات باستخدام SMTP, بدون اي Third Party انشاء قوائم Menu بالكود والقوائم الفرعية SubMenu انشاء قوائم Menu بالكود والقوائم الفرعية نسخة محدثة طريقة التعامل مع جميع الكنترول في الفورم تحديد إحداثيات الماوس على الفورم اظهار رسالة للمستخدم عند قرب انتهاء تاريخ معين طريقة عمل نسخة إحتياطية لقواعد البيانات مدعومه بالصور كيفية الربط بين برنامج أكسيس فى مكانين مختلفين مدعومه بالكود والأمثلة والصور بالإرادة والتصميم تتحقق المعجزات من أقوال الرئيس حافظ الأسد رحمه الله |
| أمجد جمالي |
Apr 2 2005, 03:49 PM
مشاركة
#4
|
|
عضو جديد المجموعة: اعضاء جدد المشاركات: 18 التسجيل: 26-January 05 رقم العضوية: 40,464 |
السلام عليكم ورحمة الله وبركاته
وهذا مثال يوضح كيفية إضافة أو إزالة الصلاحيات برمجياً على الجداول والإستعلامات يتبع الملفات المرفقة
SecurityProjectV0.1.zip ( 23.15k )
عدد مرات التحميل: 3801-------------------- هدية لأعضاء المنتدى تصاميم على الأكسيس
إرسال الإيملات باستخدام SMTP, بدون اي Third Party انشاء قوائم Menu بالكود والقوائم الفرعية SubMenu انشاء قوائم Menu بالكود والقوائم الفرعية نسخة محدثة طريقة التعامل مع جميع الكنترول في الفورم تحديد إحداثيات الماوس على الفورم اظهار رسالة للمستخدم عند قرب انتهاء تاريخ معين طريقة عمل نسخة إحتياطية لقواعد البيانات مدعومه بالصور كيفية الربط بين برنامج أكسيس فى مكانين مختلفين مدعومه بالكود والأمثلة والصور بالإرادة والتصميم تتحقق المعجزات من أقوال الرئيس حافظ الأسد رحمه الله |
| mohammed2002 |
Apr 2 2005, 03:53 PM
مشاركة
#5
|
|
عضو ![]() ![]() المجموعة: اعضاء المشاركات: 84 التسجيل: 12-May 04 رقم العضوية: 25,628 |
موضوع ممتااااااااااااااز
ارجو الأستمرار إلى النهاية اخي امجد |
| ABO ABDUUL |
Apr 2 2005, 04:32 PM
مشاركة
#6
|
|
عضو ![]() ![]() المجموعة: اعضاء المشاركات: 60 التسجيل: 17-December 02 رقم العضوية: 6,460 |
اخي العزيز
موضوع اكثر من رائع ولا يستغني عنه اي مبرمج تحياتي |
| أشرف خليل |
Apr 2 2005, 09:26 PM
مشاركة
#7
|
|
مشرف سابق ![]() ![]() ![]() ![]() المجموعة: المشرفين القدامى المشاركات: 1,467 التسجيل: 2-April 01 رقم العضوية: 427 |
موضوع طبعا الكل يحتاجه ويبحث عن طرق الحماية بأكثر من شكل .
نشكر الأخ أمجد على ذلك ونتمنى المواصلة حتى النهاية . |
| zahrah |
Apr 2 2005, 10:09 PM
مشاركة
#8
|
|
مشرفة قسم قواعد بيانات مايكروسوفت أكسس ![]() المجموعة: المشرفين المشاركات: 2,084 التسجيل: 13-July 03 رقم العضوية: 15,367 |
موضوع رائع اخي امجد وفقك الله وننتظر اكمال الموضوع
-------------------- |
| ابن مسقط |
Apr 2 2005, 11:51 PM
مشاركة
#9
|
|
خبير أكسيس و مشرف سابق ![]() ![]() ![]() ![]() المجموعة: المشرفين القدامى المشاركات: 1,264 التسجيل: 12-July 01 رقم العضوية: 1,010 |
السلام عليكم ورحمة الله وبركاته
الأخ الكريم/ أمجد إختيار موفق للعنوان وللموضوع فالعنوان شدني وأجبرني على الدخول ، والموضوع شيق ومهم وأن شاء الله أمل منك إكماله لأهميته بارك الله فيك وأجرك عليه. ولك خالص تحياتي وتقديري. |
| أبو مالك1 |
Apr 3 2005, 06:49 AM
مشاركة
#10
|
![]() عضو ![]() ![]() المجموعة: اعضاء المشاركات: 65 التسجيل: 26-December 03 رقم العضوية: 22,188 |
يا أخي جهد والله متعوب عليه...
أكمل الدرس ونحن في انتظار المزيد والظاهر إنه بدأت علامات الهوس علييييا في هذه المواضيع بارك الله فيك ... |
| أمجد جمالي |
Apr 4 2005, 01:25 PM
مشاركة
#11
|
|
عضو جديد المجموعة: اعضاء جدد المشاركات: 18 التسجيل: 26-January 05 رقم العضوية: 40,464 |
السلام عليكم ورحمة الله وبركاته
سبق وارفقت مثال عن كيفية وضع الصلاحيات وتجربتها في الجدول والأن ارفق مثال اخر يقوم بتوزيع الصلاحيات على المجموعات على جميع الجداول والاستعلامات في كل مرة يتم التسجيل الدخول فيها الى البرنامج طريقة عمل البرنامج: -شاشة دخول المستخدمين والغاية من هذه الفورم هو اسم المجموعة فقط -فورم اسمه FrmMainMenu مهمته التحقق من أسم المجموعة وتشغيل ال Function الخاص بها -يوجد جدول اسمه TblSetPermission يحتوي على اسماء الجداول والاستعلامات المراد توزيع الصلاحيات عليها -يوجد ايضاً modules اسمه SetPermission فيه الكود الخاص بإضافة وإزالة الصلاحيات (تم شرحه مسبقاً) -ويوجد ايضاً Functions وهي CODE 'يقوم بإزالة جميع الصلاحيات من على الجداول والاستعلامات 'TblSetPermission الموجودة في الجدول Ap_CodePermissionNoAccess '---------------------------------------------------------------------------- 'يقوم بإضافة جميع الصلاحيات من على الجداول والاستعلامات 'TblSetPermission الموجودة في الجدول Ap_SetPermissionFullAccess '---------------------------------------------------------------------------- 'يقوم بإضافة الصلاحيات من على اجلداول والاستعلامات 'TblSetPermission الموجودة في الجدول 'Data Entrey لمجموعة عمل كما تم التخطيط له مسبقاً في خريطة الأذونات أنظر الى الصور في المشاركات السابقة' Ap_CodePermissionDataEntrey '---------------------------------------------------------------------------- 'يقوم بإضافة الصلاحيات من على الجداول والاستعلامات 'TblSetPermission الموجودة في الجدول 'Accounting User لمجموعة عمل كما تم التخطيط له مسبقاً في خريطة الأذونات أنظر الى الصور في المشاركات السابقة' Ap_CodePermissionAccountingUser '---------------------------------------------------------------------------- 'يقوم بإضافة الصلاحيات من على الجداول والاستعلاامت 'TblSetPermission الموجودة في الجدول 'Supervisor User لمجموعة عمل كما تم التخطيط له مسبقاً في خريطة الأذونات أنظر الى الصور في المشاركات السابقة' Ap_CodePermissionSupervisorUser '---------------------------------------------------------------------------- 'يقوم بإضافة الصلاحيات من على الجداول والاستعلامات 'TblSetPermission الموجودة في الجدول 'Programming User لمجموعة عمل كما تم التخطيط له مسبقاً في خريطة الأذونات أنظر الى الصور في المشاركات السابقة' Ap_CodePermissionProgrammingUser وجميعها بلغة ال Ado لمحة سريعة عن عمل هذه Function: -تقوم بفتح الجدول TblSetPermission للقرائة فقط -تقوم بعد السجلات الموجودة في هذه الجدول (يفيد في عرض حالة توزيع الأذونات على ال Status Bar ويلاحظ عندما يكون عدد الجدوال والاستعلامات المراد توزيع عليها الأذونات كبير) -يمر على السجلات(أسماء الجداول) في الجدول TblSetPermission واحد تلو الأخر ويقوم بتوزيع الصلاحيات عليها -يزيل الحالة من على Status Bar -ويغلق الجدول TblSetPermission ملاحظات هامة: 1-أقوم بإستخدام الدالة Ap_CodePermissionNoAccess قبل توزيع اي صلاحيات لأي مجموعة تمهيداً لإضافة الأذونات التي ارغب بها وللتأكد مائة با المائة من أن هذا الجدول لا يحتوي على اي صلاحية مثل يعني Refresh 2-في جميع الدالات أقوم بتوزيع الصلاحيات وأعيد تكرارها على هذه المجموعات ِAdmins (مجموعة عمل) Users (مجموعة عمل) Admin (المستخدم الإفتراضي) Current User (المستخدم الحالي) وبالحالة هي بكون ضمنت 90% أنه شغلي صح 3-المستخدمين والمجموعات (كا أمثلة للتجريب) CODE 'UserName 'Group 'Password 'Abu Hadi 'Supervisor User 'Admin 'Abu Suliman 'Accounting User 'Admin 'Amjad Jamali 'Accounting User 'Admin 'Khuder AlRajbe 'Supervisor User 'Admin 'Mohammed Ali 'DataEntry User 'Admin 'Mohammed Taher 'Programmer User 'Admin 'Radhwan 'DataEntry User 'Admin 'Sahel Alareshi 'Programmer User 'Admin واذا في حدا عنده تعليق أ فكرة جديدة على طريقتي الرجاء أفيدوني شكراً يتبع تم تحرير المشاركة بواسطة أمجد جمالي: Apr 4 2005, 03:00 PM الملفات المرفقة
SecurityProjectV0.2.zip ( 131.28k )
عدد مرات التحميل: 3372-------------------- هدية لأعضاء المنتدى تصاميم على الأكسيس
إرسال الإيملات باستخدام SMTP, بدون اي Third Party انشاء قوائم Menu بالكود والقوائم الفرعية SubMenu انشاء قوائم Menu بالكود والقوائم الفرعية نسخة محدثة طريقة التعامل مع جميع الكنترول في الفورم تحديد إحداثيات الماوس على الفورم اظهار رسالة للمستخدم عند قرب انتهاء تاريخ معين طريقة عمل نسخة إحتياطية لقواعد البيانات مدعومه بالصور كيفية الربط بين برنامج أكسيس فى مكانين مختلفين مدعومه بالكود والأمثلة والصور بالإرادة والتصميم تتحقق المعجزات من أقوال الرئيس حافظ الأسد رحمه الله |
| أمجد جمالي |
Apr 4 2005, 01:32 PM
مشاركة
#12
|
|
عضو جديد المجموعة: اعضاء جدد المشاركات: 18 التسجيل: 26-January 05 رقم العضوية: 40,464 |
أشكركم أخواني واخواتي على تشجيعكم
ووعد مني بأني رح تابع حتى النهاية -------------------- هدية لأعضاء المنتدى تصاميم على الأكسيس
إرسال الإيملات باستخدام SMTP, بدون اي Third Party انشاء قوائم Menu بالكود والقوائم الفرعية SubMenu انشاء قوائم Menu بالكود والقوائم الفرعية نسخة محدثة طريقة التعامل مع جميع الكنترول في الفورم تحديد إحداثيات الماوس على الفورم اظهار رسالة للمستخدم عند قرب انتهاء تاريخ معين طريقة عمل نسخة إحتياطية لقواعد البيانات مدعومه بالصور كيفية الربط بين برنامج أكسيس فى مكانين مختلفين مدعومه بالكود والأمثلة والصور بالإرادة والتصميم تتحقق المعجزات من أقوال الرئيس حافظ الأسد رحمه الله |
| عبدالمانع |
Apr 4 2005, 04:27 PM
مشاركة
#13
|
|
خبير آكسيس ![]() ![]() ![]() المجموعة: الخبراء المعتمدين المشاركات: 587 التسجيل: 18-January 05 رقم العضوية: 40,048 |
يعطيك العافية اخي الفاضل
مع خالص التحيات ،،، عبدالمانع -------------------- إنما الأمم الأخلاق ما بقيت ××× فإن هم ذهبت أخلاقهم ذهبوا ...
|
| diamond |
Apr 5 2005, 07:20 AM
مشاركة
#14
|
|
عضو جديد المجموعة: اعضاء المشاركات: 23 التسجيل: 9-March 05 رقم العضوية: 43,615 |
جزاك الله خيرا
نأمل المتابعة وفقك الله |
| sx1 |
Apr 5 2005, 10:04 AM
مشاركة
#15
|
|
عضو ![]() ![]() المجموعة: اعضاء المشاركات: 134 التسجيل: 8-February 05 رقم العضوية: 41,366 |
يعطيك العافية
في انتظار المزيد نرجو المتابعة للنهاية كما وعدت |
![]() ![]() ![]() |
| نسخة خفيفة | الوقت الآن: 1st May 2006 - 07:46 AM |