السلام عليكم جميعا... اود ان اشكركم علي هذا المجهود العظيم بجد شيى نفخر به كأمة عربية واسلامية والي الامام.
الموضوع انا لاحظت من الكثير من المشاركات للاخوة كانت تهتم بالسكيورتي وفي الصلاحيات المعطاه للمستخدمين ومنع المستخدمين من الدخول الي الجداول عن طريق SQl لذلك اححببت ان اطرح فكرة لااعلم ان احد طرحها قبل ذلك حيث كل الذي شاهدته ان يمكن تشفير البيانات حتى لااحد يعرف كلمة المرور...... اليكم ما عندي عسا ان ينفعكم:
الفكرة تقوم علي انشاء جدول يتم فيه تخزين
1- اسماء المستخدمين بحيث هذا الاسم هو نفس الاسم الموجود في الداتا بيز اي مثل scott
2- كلمة السر التي موجودة في الداتا بيز tiger
3- كلمة السر التي تعطي للمستخدم وهي التي يختارها المستخدم ويمكن ان يعدلها او يغيرها .... وهنا مربط الفرس .(اي المستخدم لايعرف ما هي الباسورد الخاصة بالاوراكل ولكن يعرف فقط اسمه سكوت ويعرف الباس وورد التي هو اختارها )
4- وصف المستخدم وهي ممكن ان تكون اسمه الشخصي باللغة العربية
..... اي بيانات اخري علي حسب ما تحتاجون.
Create table Tempusers( Ora_user_name Varchar2(40), اسم المستخدم Ora_Pass Varchar2(40), كلمة المرور الخاصة بالاوراكل user_pass Varchar2(40), كلمة المرور الخاصة بالمستخدم Dec_Name Varchar2(50) وصف المستخدم );
هذا كل شيى ...
الان حتي يتمكن المستخدم من الدخول من الدفلوبر
انبه علي شيئ انه لابد في التريقر On-logon لابد اولا ان تعمل دخول باي اسم وذلك حتى تتمكن من ان تعمل جملة الاستعلام الاتيه...حيث لابد ان يكون اسم للمستخد صلاحيه حتي يستعلم عن المستخدمين من الجدول
LogOn('Scott','tiger@tnsname') ;
لاحظ هذا في الترقر
On-LOGON
علي مستوى الفورم ولازم يكون لهذا المستخدم صلاحية علي لجدول
TempUser
حتي يتمكن من الاستعلامتقوم بتصميم شاشة صغيرة يكتب فيها اسم المستخدم وهو الاسم الموجود في الداتابيز ويحقل اخر للباسورد الخاصة بالمستخدم الان نقوم بعمل جملة استعلام عند الضغط علي بتن الدخول
Select Ora_pass Into passid from tempuser where UPPER(User_pass) =UPPER(:B.pass) And UPPER(Ora_user_Name) =UPPER(:B.UserName) ;
حيث هنا يتم التحقق من ان كلمة المرور الخاصة بالمستخدم و من اسم المستخد عندها نعمل لق ان للمستخدم بهذه الطريقة
LOGON (:B.UserName , passid||'@tnsname');
ثم نفتح الشاشة الرئيسية الخاصة بالمشروع تبعناااااااااااا
Open_Form('C: MMMMMMM.fmx');نلاحظ هنا ... ان المستخد لو حاول ان يدخل علي Sql لايستطبع وذلك لانه سيحاول ان يكتب اسمه وكلمة السر الخاصة به وهي لاتمكنه من الدخول لان هناك كلمة سر خاصة هو لايعرفها وبالتالي لايستطيع ان يعمل مجرد كونكت علي الداتا بيز مع انه يوجد له صلاحيات كاملة وحتى ممكن DBA :P تعطى له ولكن لايستطيع ان يستفيد منها الا عبر البرنامج الخاص بك .
ولايمكن ان يدخل علي الداتابيز الا عبر الشاشة التي انت صممتها له .
وشكرا ........اتمنى ان اكون استطعت ان اوصل فكرتي واي استفسار انا جاهز إن شاء الله. انا بنتظار الرد(f)(f)(f)(f)(f)(f)(f)(f)