MS Access Security User Security للقراءة ولكن الجدول ليكون مخفي

StackOverflow https://stackoverflow.com/questions/930654

  •  06-09-2019
  •  | 
  •  

سؤال

هل يمكن للمستخدم المستخدم تمكين شخص ما من الوصول إلى نموذج، ولكن ليس الوصول إلى جدول؟ لدي نموذج متصل بجدول باستخدام أمر "تحديد". لا "تحديث" أو "حذف". أود للمستخدم الوصول إلى النموذج الخاص بي، لكنني لا أريدهم أن يكونوا قادرين على عرض التفاصيل في الجدول الأساسي. لقد جربت جميع أنواع المجموعات في معالج أمان لمستخدم المستخدم، ولكن لسبب ما، يأتي النموذج الخاص بي فارغا، إلا إذا أعطي الوصول الكامل إلى المستخدم لفعل أي شيء. أيه أفكار؟ بالمناسبة، أنا في Access 2003.

لا يوجد حل صحيح

نصائح أخرى

يمكنك جعل MDE وتعطيه لمستخدميك. إذا قمت بذلك، فلن يتمكن المستخدمون من رؤية أي شيء سوى واجهة المستخدم التي قدمتها.

إذا كانت الجداول الخاصة بك في نفس قاعدة بيانات الوصول مثل النماذج والاستعلامات، فستحتاج أولا إلى "تقسيم قاعدة البيانات" إلى الواجهة الواجهة والخارجية. يرى:

http://databases.about.com/od/tutorials/ss/splitaccessdb.htm.

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

بمجرد انقسام قاعدة البيانات، افتح الواجهة الأمامية في Access، وإنشاء MDE عن طريق تحديد الأدوات / أدوات قاعدة البيانات / إجراء ملف MDE من شريط القائمة. MDE هو ما تقدمه للمستخدمين. يفتحونها بنفس الطريقة التي يقوم بها أي قاعدة بيانات أخرى، إلا أنها لا تستطيع تصميم أي من الكائنات.

تأكد من أن لديك ماكرو Autoexec المعرف في الخطوط الأمامية، بحيث عند فتح MDE من قبل المستخدم، فإنه يحتوي على نقطة دخول. لا يمكن للمستخدم رؤية أي من الكائنات الموجودة في MDE، لذلك إذا لم يكن لديك ماكرو Autoexec لفتح النموذج الأول، فلن يحدث شيء عند محاولة فتح MDE.

إذا كنت بحاجة إلى القدرة على إدارة الجداول المرتبطة في MDE عن طريق السماح للمستخدم بالاتصال بقاعدة بيانات الخلفية باستخدام مربع حوار ملف / فتح، راجع المقال التالي:

http://www.mvps.org/access/tables/tbl0009.htm.

بالطبع، لا يمنع أي من هذا المستخدمين من فتح قاعدة بيانات Backend. إذا كنت بحاجة إلى أمان أقوى، يمكنك استخدام قاعدة بيانات Backend إلى SQL Server Express. مزيد من المعلومات هنا:

http://office.microsoft.com/en-us/access/ha102755371033.aspx.

ما تبحث عنه هو استعلام RWOP. وهذا يعني "تشغيل مع إذن المالك".

لجعلها تعمل، افترض أنك قمت بالفعل بتشغيل "معالج الأمان" في قواعد البيانات الواجهة الأمامية والخلفية وقمت بإزالة أذونات للمستخدمين حتى قراءة الجداول، ثم قم بإنشاء استعلام محفوظ كوسائل سجل النموذج الخاص بك. في خصائص الاستعلام، يتم تعيينه بشكل افتراضي لتشغيل الأذونات ك "المستخدم". تغيير ذلك إلى "المالك" وحفظ الاستعلام. سيتم تشغيل الاستعلام بأي أذونات على الجدول الأساسي، صاحب الاستعلام لديه. إذا كنت تعمل كمسؤول مع أذونات كاملة، فستحتاج إلى تعيين أذونات الاستعلام المحفوظة للقراءة فقط (أو إنشاء استعلام ضمن تسجيل دخول مستخدم يحتوي على الوصول للقراءة فقط إلى الجداول - إنه أسهل بكثير للقيام السابقين).

بعض التحذيرات:

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

  2. أمان على مستوى المستخدم قابل للغلق من قبل أي شخص يريد. هذا لا يعني أنه ليس مفيدا، فهذا يعني أنه ليس مقاومة للرصاص. لا تقلق بشأن ذلك كثيرا، حيث أن أعتبر الأمن مشكلة شعبية كمشكلة فنية - يجب عليك إعطاء موظفين امتيازات كافية للقيام بعملهم، وتبق لهم أنهم لن يسحبوا الامتيازات لقد قدمتها لهم.

  3. إذا كنت تقوم بالوصول إلى 2007 واستخدام تنسيق ACCDB، فإن استعلامات RWOP غير متوفرة لك، لأن أمان على مستوى المستخدم Jet غير مدعوم بتنسيق ACCDB. إذا كنت تستخدم تنسيق MDB، فذلك، سيعمل على ما يرام في A2007.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top