اذهب الي المحتوي
أوفيسنا

اكثر من مثال لعمل نظام صلاحيات


officenamember

الردود الموصى بها

اقصد بنظام مبسط اي يوضع اسم مستخدم وكلمة مرور ومنها يتم تحديد الصلاحيات (عرض , إدخال , تعديل , حذف)

بدون خوض في توسع في الصلاحيات هل استطيع ان احصل على مثل هذا النظام المبسط؟

اطلعت على مثال الاستاذ ابو عقيل فوجدت نظام الصلاحيات اكبر من البرنامج الذي سأضع له الصلاحيات بمراحل :SHY:

الرجاء من لديه صلاحيات مبسطه ان يبعثها وله الشكر والتقدير

والسلام عليكم

  • Thanks 1
رابط هذا التعليق
شارك

اخي الاستاذ اشرف بارك الله بك

اشكرك على هذا التجاوب السريع

المثال الذي ارفقته مشكورا ظهرت به اخطاء في الوحدات النمطيه عندما رادت فتحه ؟؟!!!

وبعدين هل يمكن جعله نموذج البداية وربط باقي برنامجي به ؟؟

الرجاء التكرم والإجابة على سؤالي

بارك الله فيكم دنيا وآخرة

والسلام عليكم

رابط هذا التعليق
شارك

مثال بسيط لامكانية فتح نموذج و التعديل فى مربع نص من عدمه بناء علي كود المستخدم الحالي المسجل فى جدول

اذا غيرت المستخدم الحالي الي مستخدم رقم صفر او واحد فسيفتح النموذج و تستطيع التعديل في مربع النص و الا فلن يمكنك ذلك

و تكون القيمة الخاصة برقم المستخدم مسجلة فى الجدول مسبقا ، ووضعتها فى نفس النموذج لتسهيل التجربة

auth.rar

رابط هذا التعليق
شارك

الاستاذ امير عاطف سلمه الله

حاولت ان استخدم المثال الاخير loginفي البرنامج لدي

وقمت بتوجيه البرنامج بعد إدخال كلمة المرور صحيحه الى نموذج البداية الخاص بي

ولكن تفاجأة ان المستخدم يستطيع عمل كل شيء على النماذج من عمليات الحذف والتعديل وغيره على الرغم من انه في الصلاحيات ليس له اي صلاحية لا حذف ولا تعديل ....الخ\

وجربت على النموذج الخاص بامثالك فوجدته يعمل 100%

مالسبب ياترى ؟؟؟؟؟!!!!!!!!!

كل الجداول النماذج والماكرو نقلتها الى البرنامج الخاص بي بالإضافة للعلاقات ولكن لم يعمل على برنامجي !!!!؟؟؟؟

الرجاء مساعدتي في حل المشكلة

بارك الله فيكم

رابط هذا التعليق
شارك

قبل ان تستخدم صلاحيات اي مستخدم يجب عليك الدخول اولاً عن طريق كتابة اسم المستخدم وكلمة المرور الخاصة به في النموذج المسمى login ثم الضغط على زر دخول اي يجب عليك عند بداية فتح البرنامج يجب ان تقوم أول شيء فتح النموذج المسمى login وتقو بالدخول من خلاله

رابط هذا التعليق
شارك

ايضاً اذا اردت تطبيق الصلاحيات المسجله على نموذج محدد يجب ان تقوم باستدعاء الثلاث دوال التالية وهي :

w

e

r

وذلك عن كريق وضع الكود التالي عند الحدث الحالي On Current للنموذج الذي تريد تطبيق الصلاحيات عليه

Call w

Call e

Call r

رابط هذا التعليق
شارك

الاستاذ امير عاطف بارك الله فيك

فضلا لا امرا تطبيق الصلاحيات على هذا المثال المرفق لأنه مطابق لما لدي ولكن فشلت في تحميله للإنترنت وهذا عنوانه وهو موجود سابقا في المنتدى وهو خاص بك :)

http://www.officena.net/ib/index.php?act=A...pe=post&id=1946

في المثال المشابه له عندي يوجد المشاكل التالية بعد ان قمت بتطبيق نظام الصلاحيات عليه

1- واجهتني مشكلة عندما اضيف هذه العبارة للنموذج لاني اريد النموذج يفتح على سجل جديد عن الفتح

DoCmd.GoToRecord , , acNewRec

اذا كانت صلاحية المستخدم للإضافة غير ممكنه

2- وكذلك وجدت ان فاعلية الحذف والإضافة والتعديل مفعله على الرغم من ان المستخدم ليس له صلاحية !!!!! يعني يقدر يعدل ويسوي الذي يريده :)

3- كذلك لاحظت ان الكمبو بوكس تجمد ولا اعرف السببب!!!! :(

انا متأكيد ان المشاكل هذه ليست عقبه لدى مبرمجين متمكنين امثالكم

الرجاء الرجاء فتح المرفق وتطبيق الصلاحيات عليه لكي تكون الصلاحيات فعالها حسب ما نحدده --وعفاكم الله

شكرا لكم

الرجاء ارفاق الملف بعد التعديل

:fff:

رابط هذا التعليق
شارك

بسم الله

اخي الفاضل الاستاذ امير عاطف

شكرا لك على هذا التواصل الرائع

عندما اقوم بحذف الصلاحيات عن مستخدم وبالذات صلاحية التعديل يتجمد الكمبو بوكس ولا اعرف السبب ؟؟؟!! :(

كما اريد اضافة صلاحية جديده وهي القراءه فقط

واعني بها ان المستخدم يشاهد فقط بدون اي شيء آخر

الرجاء عمل تعديل لهذا الوضع بحيث لا يتجمد الكمبو بكس ؟ :)

انا في انتظار الحل لهاتين المشكلتين التجمد وصلاحية القراءة فقط

شكرا جزيلا

:fff:

رابط هذا التعليق
شارك

  • 1 year later...

السلام عليكم ورحمة الله وبركاته

مسألة حماية قواعد البيانات من اكثر المهام اهمية وأولوية بالنسبة للمبرمج وهناك وجهان رئيسيان لحماية قواعد البيانات الاول متعلق بك انت كمبرمج وكيفية حماية حقوقك الفكرية والثاني متعلق بالعميل المستخدم للبرنامج وكيفية منح الصلاحيات للمستخدمين

في موضوعي رح اتناول المفهوم الثاني للحماية بالتفصيل وبالشرح الممل ومدعوم بالأمثلة

وبإذن الله رح حط كل خبرتي في هذا المجال هون في هذا الموضوع ولن ابخل بأي شيء.

اما بالنسبة للمفهوم الأول من الحماية اترك لكم مهمة البحث في قسم خلاصة المشاركات وهي وافية وكافية.

الدرس رح يتضمن الخطوات التالية وسوف اتناولها كما هي مرتبة أدناه

التخطيط للحماية

ماهي الصلاحيات التي يجب ان اعدها

كيف اتجنب الأخطاء الشائعة الموجودة في نظام الحماية

الحماية على مستوى المستخدمون والمجموعات (نظام الأمان الحقيقي) من واقع تجربة

برمجة الحماية والشفرة مكتوبة بواسطة ADO

Programming Security with ADO

ولن اترك اي sector او سطر كود الا وسوف اشرحه بإذن الله

واذا لقيت اقبال على الموضوع سوف اقوم بتثبيته لفترة

واترككم اليوم تزرور الموضوع هاد في لمحة بسيطة عن الاتصال بقواعد البيانات بإستخدام ال ADO

تحياتي لكم

ابو نادر

رابط هذا التعليق
شارك

  • 1 month later...

أعود مرة ثانية الى الموضوع بعد إنقطاع طويل عن المنتدى لظروف خارجة عن إرادتي وسوف اكرس كل جهدي ان شاء الله لتقديم افضل ما عندي كما ذكرت كل خبرتي رح حطا في هالموضوع هاد :fff:

بسم الله نبدأ

1-التخطيط للحماية:

1-تصنيف المستخدمين الى مجموعات كل مستخدم ينتمي الى مجموعة عمل مثال على ذلك

مجموعة المحاسبة

مجموعة مدخلين البيانات

مجموعة المشرفين

2-توزيع الصلاحيات على المجموعات وتجنب اخي الكريم تجنب توزيع الصلاحيات على لكل مستخدم على حدا

لأنه من السهل توزيع الصلاحيات على اربع او خمس مجموعات ونسبة وقوع الخطأ تكون 5-10 % ومن الصعب ضبط و توزيع الصلاحيات عى 30 مستخدم أو اكثر تكون نسبة الخطأ تتجاوز 50% وهذه من واقع تجربة

3-برمجة نموزج تسجيل دخول الى البرنامج تتألف من ثلاثة خالنات

أسم المستخدم

أسم مجموعة العمل

خانة إدخال كلمة المرور

3-حماية البيانات من التعديل والحذف او الوصول اليها من المستخدمين

4-التحقق من خصائص النظام قبل الدخول الى البرنامج

5-منع الوصول الى بعض النمازج من خلال حماية القوائم

6-عمل مخطط للصلاحيات للرجوع إليها مستقبلاً كما هو موضح في الصورة

PIC002.png

7-النسخ الإحتياطي الألي لقواعد البيانات

حماية البيانات من التعديل او الحذف او حتى الإطلاع عليها من قبل المستخدمين تأتي بالدرجة الأولى بالنسبة لي ولا أبالغ عندما أقول بأنه قد أصابني هوس بخصوص هذا الموضوع لذلك سوف أتناول حماية الجداول والاإستعلامات في الفترة الحالية واليك هذه الأوامر من مكتبة Dao في الكلاس PermaissionEnum

dbSecCreate
dbSecDBAdmin
dbSecDBCreate
dbSecDBExclusive
dbSecDBOpen
dbSecDelete
dbSecDeleteData
dbSecFullAccess
dbSecInsertData
dbSecNoAccess
dbSecReadDef
dbSecReadSec
dbSecReplaceData
dbSecRetrieveData
 dbSecWriteDef
dbSecWriteOwner
dbSecWriteSec
هذه الأوامر لحماية او ازالة الحماية من الجداول الإستعلامات النماذج التقارير والماكرو والذي سوف أتناوله الأن الاأوامر الخاصة بالجداول واللإستعلامات وهي
dbSecFullAccess "إضافة او إزالة جميع الإذونات"
dbSecInsertData "إضافة أو إزالة خاصية إدخال البيانات"
dbSecReadDef "إضافة أو إزالة خاصية قرائة التصميم"
dbSecRetrieveData "إضافة أو إزالة خاصية الوصول أو قراءة البيانات"
dbSecReplaceData "إضافة أو إزالة خاصية التعديل على البيانات"
dbSecDeleteData "إضافة أو إزالة خاصية حذف البيانات"

بإمكانك تجربة إضافة أو إزالة الأذونات عن طريق الكود في المثال الذي سوف أرفقه لاحقاً

كما بإمكانك من خلال الأكسيس إضافة أو إزالة الصلاحيات كما هو موضح في الصورة لكن عيب هذه الطريقة وهو في حال نقل قاعدة البيانات الى جهاز اخر يترتب عليك توزيع الصلاحيات من جديد والكثير من العيوب الإخرى

PIC001.PNG

يتبع

تم تعديل بواسطه rudwan
رابط هذا التعليق
شارك

السلام عليكم

أخي الأستاذ أمج جمالي

في ملاحظة في برمجة نموذج تسجيل الدخول التالي

3-برمجة نموزج تسجيل دخول الى البرنامج تتألف من ثلاثة خالنات

أسم المستخدم

أسم مجموعة العمل

خانة إدخال كلمة المرور

ما الداعي إلى تحديد مجموعة العمل في النموذج ؟

ويمكن تحديدها برمجيًا من اسم المستخدم سواء كان رقمًا أو نصًا ؛ وعليه يتم تفعيل الصلاحيات.

أرى والرأي لكم أن لا داعي لها والاكتفاء باسم المستخدم وكلمة المرور فقط

أخوكم

أبو سليمان

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته

ما الداعي إلى تحديد مجموعة العمل في النموذج ؟

ويمكن تحديدها برمجيًا من اسم المستخدم سواء كان رقمًا أو نصًا ؛ وعليه يتم تفعيل الصلاحيات.

أستاذي وأخي الكريم ابو سليمان لفتة ذكية منك وماذكرته بالفعل مطبق في شاشة تسجيل الدخول

خانة المجموعة غير متاحة للمستخدم ويتم تحديدها الياً من خلال اسم المستخدم

اليك صورة شاشة التسجيل الدخول

PIC004.PNG

او لتحميل برنامج تسجيل الدخول سبق وان ارفقته مسبقاً في موضوع اخر من هنا

وللإطلاع على الموضوع المرفق به هذا المثال من هنا

في مشروعي الحماية هذا سوف استخدم نموذج تسجيل الدخول اكثر تطوراً من السابق

لذلك احتاج لبعض الوقت لتحضير الأمثلة

شكراً وتحياتي لك

رابط هذا التعليق
شارك

مرفق الكود الخاص بإضافة وإزالة الصلاحيات برمجياً مع الشرح

الدالة Ap_AssignPermissionAdd تقوم بإضافة الصلاحيات

والدالة Ap_AssignPermissionRemove تقوم بإزالة الصلاحيات

عليك تمرير 4 بارمترات عند تجربة أي دالة من الدالاتين وهي

1-أسم المستخدم أو أسم المجموعة(الخاصة بالأوفيس وليس شاشة التسجيل الدخول)

2-أسم الكائن وليكن اسم الجدول او اسم الاستعلام

3-نوع الكائن جدول او نموزج اوتقرير

4-اسم الصلاحية التي تريد اعدادها للمستخدم او المجموعة

هذا هو الكود مع الشرح

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
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
Ap_AssignPermissionAdd CurrentUser ,"TblUser","Tables",dbSecFullAccess
مثال على إزالة جميع الصلاحيات لمستخدم يدعى Amjad من الجدول TblUser
Ap_AssignPermissionRemove "Amjad" ,"TblUser","Tables",dbSecFullAccess

للتحقق من أن الكود يعمل جيداً إذهب إلى User And Group Permission كما هو موضح في الصورة وتأكد من ذلك

PIC001.PNG

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information