السلام عليكم
ما هي مصادقة ويندوز؟
هي باختصار البيانات التي يحفظها ويندوز لكل مستخدم ضمن بيئة مستخدمين على جهاز قائم بذاته، أو ضمن شبكة محلية، أو على الويب. يقوم ويندوز بمطالبة المستخدم بمصادقة هذه البيانات في كل مرة يريد الدخول إلى ويندوز.
البيانات الأكثر أهمية هي:
— اسم المستخدم
— اسم الحاسب (الكمبيوتر)
— اسم المجال (الدومين)
— مجموعات المستخدمين
يمكن بواسطة اسم الحاسب أو المجال منع قاعدة البيانات من الإقلاع،و يمكن بواسطة اسم المستخدم تحديد الصلاحية. كما إنه بالإمكان جعل الصلاحيات أكثر خصوصية بتخصيص مجموعات المستخدمين.
من التقاليد السائدة عند مطوري أكسس النظر إلى قاعدة البيانات ذاتها دون النظر إلى البيئية التي يعمل من خلالها أكسس، ولذا ينصب النظر عند إدارة الصلاحية إلى إنشاء الصلاحية من داخل قاعدة البيانات، أي إن المطور يقوم بكتابة الصلاحية وقراءتها ضمن قاعدة البيانات. لكن هذا المفهوم لم يعد مقبولا مع أكسس 2007 كما لا يخفي على علمكم.
ومن التقاليد السائدة عند مستخدمي الحاسبات المشتركة بين أكثر من مستخدم هو استخدام حساب وحيد غير مؤمن بكلمة مرور، مع تأمين قاعدة البيانات بكلمة مرور! لتفادي استخدام قاعدة البيانات من أشخاص غير مصرح لهم.
وهنا ينشأ سؤال افتراضي: لماذا لا يكون لكل مستخدم حساب ويندوز مستقل؟ حساب ويندوز مستقل يعني الخصوصية، وهذا يعني أنه إذا لم يكن لديك حساب ويندوز؛ فإنه لا يمكنك الدخول على قاعدة البيانات أصلا. وكلما زاد تخصيص الصلاحية قل تمكين المستخدم من قاعدة البيانات.
ولكي يكون الأمر أكثر وضوحاً لنفترض قاعدة بيانات يمكن أن تكون مثالا لما نحن بصدده. وهي كالتالي..
مدير منشأة يريد قاعدة بيانات لتسجيل بيانات المعاملات الواردة إلى المنشأة، ويريد أيضا عند تحديد المعني باتخاذ الإجراء على المعاملة كتابة الإجراء المتخذ عليها ضمن قاعدة البيانات ليتمكن من تتبع المعاملات والإجراءات المتخذة عليها ومن المعني بالإجراء، عندما يكون للمعاملة أكثر من إجراء.
وستكون قاعدة البيانات على النحول التالي:
_ مسجل بيانات المعاملات الواردة والصادرة
يصرح لهذا الشخص بتسجيل بيانات المعاملات الوارد والصادرة، كما يصرح له بتسجيل إجراءات الموقعة باسمه.
_ مسجل إجراءات
يصرح لهذا الشخص بسجيل الإجراء الذي اتخذه على المعاملة وتوقيعه باسمه، كما يصرح له بتصفح سجلات المعاملت الواردة والصادرة فقط، بدون صلاحية التسجيل.
_ متصفح البيانات
يصرح له بتصفح سجلات المعاملات الواردة والصادر والإجراءات المتخذة عليها فقط، بدون صلاحية التسجيل
_ مدير قاعدة البيانات
وهو الشخص المعني بتوزيع الصلاحيات وصيانة قاعدة البيانات
سوف أقوم برفع هذا المشروع في الجلسات القادمة بمشيئة الله
لنعد إلى نقطة البداية. كيف يمكن الحصول على بيانات المستخدم عن طريق شفرة أكسس؟
أعرف أن أفكاركم سوف تنصرف إلى مفاتيح ودوالي ويندو API وتعقيدتها واحترافية القص واللزق.
وأنا أقطع عليكم أفكاركم وأقول الأمر أسهل من ذلك بكثير، وأظنكم سوف تضحكون تعجبا من قصر الشفرة المعنية بهذا الغرض.
في الحقيقة كل ماتحتاجونه هو السطر التالي:
Set wsnt = CreateObject("WScript.Network")هذة الشفرة تنشئ كائن اسمه WScript.Network وتسنده إلى المتغير wsnt، هذا المتغير يعيد البيانات التالية:
wsnt.UserName wsnt.ComputerName wsnt.UserDomain
يمكن أن نضع جميع القيم العائدة من هذا المتغير في وظيفة واحدة أو نفرد كل واحدة منها في وظيفة مستقلة
المثال التالي لتوضيح الشفرة.
سوف تتم مناقشة المثال في الجلسة التالية مع مزيد من الشرح لبيئة المستخدمين وكيفية تخصيصها.
