الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

شاشة المدير

Featured Replies

بتاريخ:

السلام عليكم ...
اخواني واخواتي مبرمجي الاوراكل لدي مشكلة بسيطة .. وهي انني صممت نظام محاسبي شبه متكامل لشركة
ولكن بقيت مشكلة عندي في نظام المدير اوصلاحيات المدير
وقد اشترطت عليا الشركة عمل نظام للمدير يقوم بالتالي :
اولا : معرفة المستخدم الذي دخل النظام عند دخوله وهذة ما فيها مشكلة .
ثانيا: معرفة وقت دخول المستخدم النظام ووقت خروجه وهذة ايضا ما فيها مشكلة .
ثالثا: ايقاف مستخدم معين عن الدخول اذا دخل في وقت غير المحدد له .
رابعا: وهنا المشكلة وهي طرد المستخدم بمجرد تاشير المدير على check box التابع لطرد المستخدم
ولكن واجهتني مشكلة .. مع العلم اني عملت مستخدمين على الفورم اي في جدول خاص في قاعدة البيانات خصصته للمستخدمين ولم اعمل على مستخدمين قاعدة البيانات ..
ففكرت بالتالي ان اعمل تايمر على مستوى كل شاشة من شاشات النظام يقوم بتحسس جدول المستخدمين
وهل هناك امر طرد .. وهذا حل منطقي ولكن الشاشات المتواجدة عندي كثيرة جدا اكثر من 80 شاشة
فمن غير المعقول عمل تايمر على مستوى كل شاشة ...
فاللي عنده حل رجاء يسعفنا فيه وله جزيل الشكر والتقدير املا اني قد وضحت المشكلة ..
ولكم خالص التحية والتقدير ............
اخوكم الجنتل .

بتاريخ:

الاخ الكريم
بالنسبة لطرد المستخدم فيوجد طريقة اسهل وهي انك تنهي عمل session فلكل مستخدم sessionمعين
يعني تعمل kill session وكنا زمان نطبق هذه المعادلة بس ما ابتفي بالغرض اذا كنت تريد ان تنفذها من خلال فورم وهي

--ممكن تطبيق الجملة من خلال الداتا بيس مباشرة 
alter system kill session 'sid,serial#'


بس لازم يكون لليوزر صلاحيات تساوي صلاحيات يوزر sys
على جدول v_$session وبالشكل التالي

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

begin    
  for i in (select sid,serial# from v$session where username  = 'OSAMA ) 
loop   
       execute immediate 'alter system kill session ' ||''''|| i.sid ||','|| 
i.serial# ||''' immediate';
  end loop;
end;



ارجو ان تكون هذه المعلومة افادتك
وسؤالك مميز بصراحة ونرجو الاستمرار بمثل هذه الاسئلة
;)

بتاريخ:

السلام عليكم
الأخ أسامة
يبدو انه قد فاتك جزء من سؤال الأخ السائل ;)
فهو ذكر ان المستخدمين لديه ليسوا داتا بيز يوزرز
و هم يوزرز في جدول خاص بالنظام فقط و ليس الداتا بيز
لذلك لا يمكن عمل KILL SESSION :D

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

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

بالتوفيق

تم تعديل بواسطة hanon_OCP

بتاريخ:

لحل مشكله يوزر ابلكيشن و ليس داتا بيز يمكن عمل جدول و عمل ادخال فيه بعد فتح السيشن مباشره في البرنامج وتسجيل رقم السشن و اسم اليوزر الي شغال بيها و الجهاز الذي تم فتح السشن منه و الوقت
وبناء علي هذه المعلومات يمكنك استخدام KILL SESSION
مع تمنياتي بالتوفيق

بتاريخ:

الاخ عبد الله
يعمل يوزر على قاعدة البيانات افضل له

بتاريخ:
  • كاتب الموضوع

السلام عليكم
شكرا لكم اخواني على اجاباتكم
بالنسبة للصلاحيات وعمل مستخدمين على الداتا بيز فأنا من المتشائمين من هذة الطريقة وذلك لسبب
انه اذا تم معرفة اي يوزر نيم وباسورد لاي مستخدم فعال في النظام فبإمكان اي مستخدم له خبرة ولو بسيطة في الداتا بيز ان يخش على قاعدة البيانات ويعمل مشاكل وقد واجهتني هذة المشكلة في مرة من المرات ومن بعدها لم اعد استخدم غير مستخدمين على جدول معين اقوم بعمله في قاعدة البيانات التابعة لي وبهذة الطريقة لا اسمح لاي احد من دخول قاعدة البيانات .
طبعا مع شكري الجزيل للاخ الكريم اسامة الذي اشار علي باستخدام الــ kill session
اما بالنسبة للاخ الكريم هانون فقد فهمت طريقته ولا اعرف ان كنت فهمتها جيدا ولكن المشكلة ان التايمر وبمجرد الخروج من الشاشة اللي عامله عليها يتم ايقافة اي ان التايمر لا يعمل جلوباال على مستوى الفورمز كله ..
واخي الكريم عبدالله ندا ارجو منك ان توضح لي الطريقة التي اشرت بها ولو بمثال ولك كل التقدير

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

بتاريخ:

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

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

CONNECT / AS SYSDBA;

CREATE OR REPLACE TRIGGER block_tools_from_prod
 AFTER LOGON ON DATABASE
DECLARE
 v_prog sys.v_$session.program%TYPE;
BEGIN
 SELECT program INTO v_prog 
   FROM sys.v_$session
 WHERE  audsid = USERENV('SESSIONID')
   AND  audsid != 0  -- Don't Check SYS Connections
   AND  rownum = 1;  -- Parallel processes will have the same AUDSID's

 IF UPPER(v_prog) LIKE '%TOAD%' OR UPPER(v_prog) LIKE '%T.O.A.D%' OR -- Toad
    UPPER(v_prog) LIKE '%SQLNAV%' OR	-- SQL Navigator
    UPPER(v_prog) LIKE '%PLSQLDEV%' OR -- PLSQL Developer
    UPPER(v_prog) LIKE '%BUSOBJ%' OR   -- Business Objects
    UPPER(v_prog) LIKE '%EXCEL%'       -- MS-Excel plug-in
 THEN
    RAISE_APPLICATION_ERROR(-20000, 'Development tools are not allowed on PROD DB!');
 END IF;
END;
/
SHOW ERRORS



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

و بالنسبة لطريقة الأخ عبدالله ندا فهي تتمثل في فكرة ان المستخدمين عندك لو كانوا ليسوا داتا بيز يوزرز فكلهم يدخل بنفس اليوزر و لكن ككل منهم سيشن مختلفة بسيريال مختلف
و يمكنك عمل جدول تسجل به اسم اليوزر و رقم السيشن التي دخل بها ثم تتخدم الkill session لعمل انهاء لاتصال المستخدم بالبرنامج

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

بالتوفيق

تم تعديل بواسطة hanon_OCP

بتاريخ:

الاخ الكريم " الجنتل "
من سؤالك فهمت انك تريد عمل طرد للمستخدم بمجرد ضغط check box من قبل المدير
الحلول السابقة كلها اكثر من رائعة وبرأيي اليوزر من الداتا بيز افضل واسهل في عملية التحكم
اما بالنسبة انو تستخدم تايمر لانو اليوزر على الفورمز مش ضروري فيك تعمل تريجر على insert وupdate وdelete ولما يحاول وحدة من العمليات هاي يستدعي التريجر ويشيك هل هو مطرود ولا لأ واذا مطرود نعملو أمر exit_form
انا عملت شيء قريب من فكرة التايمر على شاشة ايميلات داخلية على الداتابيز كل ما وصلت رسالة جديدة تظهر اليرت تحكيلو في رسالة جديدة بس بصراحة بتاخد لود عالشاشات

بتاريخ:
  • كاتب الموضوع

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

بتاريخ:
  • كاتب الموضوع

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

  • بعد 14 سنة...
بتاريخ:

يا جماعه عندي تقريبا نفس المشكله

مطلوب مني  ع شاشة ال ادمن يقدر يعرف كم عدد ساعات عمل  كل موظف

متى دخل متى خرج

وايضا كمية المبيعات 

الافرج والارباح 

كيف يتم ذلك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

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

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.