بتاريخ: 14 يناير 201214 سنة comment_219758 السلام عليكم و رحمة الله و بركاته أنا بقالي تقريباً 3 أيام بدور علي أفضل طريقة للتحكم بالصلاحيات و إنشائها لحماية البرنامجو هذه الموضوع قمت بالإطلاع عليهاhttp://www.araboug.o...&hl=count&st=15http://www.araboug.o...showtopic=46139http://www.araboug.o...showtopic=47797http://www.araboug.o...showtopic=48475http://www.araboug.o...showtopic=35177http://www.araboug.o...?showtopic=9261http://www.araboug.o...showtopic=35569http://www.araboug.o...showtopic=42416http://www.araboug.o...showtopic=37487 و من خلال بحثي فيهم وجدت طريقتان (إنشاء جدول للصلاحيات و آخر للمستخدمين - إستخدام صلاحيات الداتبيز الأصلية)و في الحقيقة إستعملت الأولي من قبل و لكن بشكل مصغر حيث قمت بالتالي---------------------------------------------------------------- بإنشاء جدول للصلاحيات و جدول آخر للمستخدمين ----------------------------------------------------------------و بالنسبة لكود فورمة اللوجين بعمل سيرش و أخد كل صلاحية لليوزر في Global Variable declare cursor getuser Is select admin,i,r,s,d,u from user_access where user_id=:txtuser and pwd=:txtpwd; al_id alert; al_num number; al_data_id alert; al_data_num number;beginif :txtuser is not null or :txtpwd is not null then open getuser; fetch getuser into :global.v_admin,:global.v_i,:global.v_s,:global.v_u,:global.v_d,:global.v_r; if getuser%notfound then......إلخ و التأكد مع فتح كل شاشة بالكود التالي : if :global.v_r=1 then set_item_property('REPORTS',enabled,property_true); ......إلخ------------------------------------------------------------------------------------------------------------------------------لكن وجدت أنني ربما أحتاج لإعطاء التحكم بشاشة معينة لمستخدم و الأخر لأو أثناء بحث وجدت http://www.araboug.o...showtopic=37487 و نصيحته بالتالي mmsalman87 و عجبتني جداً فكرة العضو ========================================================================= اعمل جدول فيه اسماء الفورمز ورقم لكل فورم وجدول اخر فيه رقم الموظف ورقم الفورم والصلاحيات تعديل حفظ اضافة استعلام طباعةومن ثم اربطهم مع بعض وفي كل فورم اعمل فحص لوجوده مع الموظف من عدمه هذه فكرة سريعة اذا بدك توضيح ساشرح لك لاحقا ولكني االان مشغول========================================================================= و لكنني للأسف لم أستطع الفهم الكامل للفروم و المثال الرفق في أخر الموضوعو ذلك لخبرتي القليلة بالطبع بالطبع أنا حاولت و فكرت في هذه الفكرة لكن تواجهني مشكلة و هي كيف سأحفظ كل صلاحية لكل فورم لنفس الشخص في Global Variable بمعني بالطريقة التي ذكرها الأخ mmsalman87 كما بالصورة المرفقة هل يمكن التوضيح أكثر لهذه الفكرة (السؤال الثالث) و لكم جزيل الشكرالطريقة الثانية التي لم أستخدمها من قبل من خلال الداتابيز (privileges to users and role) مثلاللينك أو الرابط التالي ممتاز بالطبع http://www.araboug.o...?showtopic=9261 لكن الأكواد مش واضحة لخطأ في إظهار الاكواد بالمنتدي بالإضافة إلي أن هذه الطريقة كيف أتحكم من خلالها في رؤية التقرير من عدمه أو مثلاُ طباعته من عدمه و ما مدي إمكانية إضافة صلاحية جديدة غير موجودة من ضمن صلاحيات الداتابيز (السؤال ثاني)السؤال الأول أي الطريقتين الأفضل و لماذا ؟ تم تعديل 14 يناير 201214 سنة بواسطة gamal_orcl تقديم بلاغ
بتاريخ: 14 يناير 201214 سنة كاتب الموضوع comment_219773 السلام عليكم و رحمة الله و بركاته هاوضح أسئلتي و أختصرها 1- ما الأفضل و الذي يستخدم بالفعل في المؤسسات الكبيرة ( إنشاء جدول للصلاحيات و آخر للمستخدمين - إستخدام صلاحيات الداتبيز الأصلية ) 2- عايز احدد لكل يوزر شاشات معينة يستطيع فتحها و التعامل معها بخلاف غيره من المستخدمين إن امكن ملحوظة : تم الإطلاع علي هذا الموضوع أيضاًhttp://www.araboug.o...mmsalman87&st=0إلا أنه لم يتطرق للطريقة المراد الوصول إليها3 - طريقة إستخدام صلاحيات الداتبيز الأصلية و التحكم بها من خلال أمري (Grant - Revoke) كيف أتحكم من خلالها في رؤية التقرير من عدمه أو مثلاُ طباعته من عدمه و ما مدي إمكانية إضافة صلاحية جديدة غير موجودة من ضمن صلاحيات الداتابيز و التحكم بها من خلال الشاشات و السلام عليكم و رحمة الله و بركاته تم تعديل 14 يناير 201214 سنة بواسطة gamal_orcl تقديم بلاغ
بتاريخ: 15 يناير 201214 سنة comment_219789 2- عايز احدد لكل يوزر شاشات معينة يستطيع فتحها و التعامل معها بخلاف غيره من المستخدمين إن امكن ملحوظة : تم الإطلاع علي هذا الموضوع أيضاً http://www.araboug.o...mmsalman87&st=0 إلا أنه لم يتطرق للطريقة المراد الوصول إليها هرد على نقطه 2على حسب علمى وتجربتى -انا بتكلم باختصار عن النقطه اللى انت محتاجها-عملت شاشه لوجن فيها ان المستخدم يدخل رقمه مثلا او اسمه وكلمه السروعملت زرار اسمه enterاعمل على اسكيما HRقمت بانشاء MENUVISIBLE = NOالهدف قمت مسبقا بعمل شاشه للصلاحيات بحيث اعطاء الصلاحيات للقوائم حسب المستخدم اذا كان المستخدم صلاحياته على القائمه كذا = نعم ف اسمح له غير ذلك لا تسمحوقمت بأنشاء فورمه رئيسيه بها القوائماولا اشىء الجدول التالى 1CREATE TABLE [/left] CREATE TABLE HR.EMP_PRIV ( EMPLOYEE_ID NUMBER(6) NOT NULL, DEPARTMENT_ID NUMBER(4) NOT NULL, EMPLOYEE_FORM VARCHAR2(200 BYTE) NOT NULL, FORM_ACCESS CHAR(1 BYTE), FORM_INSERT CHAR(1 BYTE), FORM_UPDATE CHAR(1 BYTE), FORM_DELETE CHAR(1 BYTE), CREATED_BY VARCHAR2(50 BYTE), CREATED_DATE DATE, MODIFIED_BY VARCHAR2(50 BYTE), MODIFIED_DATE DATE, MAN_ID NUMBER(6)) ثانيا بعد بناء الجدول قمت بعمل بروسيدر على الفورم وكتبت فيه التالى وقمت بعمل كول عليه من داخل زرار enter PROCEDURE VALIDATION_FORMS IS CURSOR V_FORMS IS SELECT * FROM EMP_PRIV WHERE EMPLOYEE_ID =:GLOBAL.EMP_ID; V_MAN_ID NUMBER(6);BEGIN FOR REC IN V_FORMS LOOP IF REC.FORM_ACCESS = 'Y' AND REC.EMPLOYEE_FORM ='DEPT_FILE' THEN SET_MENU_ITEM_PROPERTY('MENU_DEPT.FILE',VISIBLE,PROPERTY_TRUE); --ACCES TO ACCOUNT SETTING ELSIF REC.FORM_ACCESS = 'Y' AND REC.EMPLOYEE_FORM ='DEPT_ACCOUNT_SETTING' THEN SET_MENU_ITEM_PROPERTY('MENU_DEPT.ACCOUNT_SETTING',VISIBLE,PROPERTY_TRUE); --ACCESS TO DEPARTMENTS ELSIF REC.FORM_ACCESS = 'Y' AND REC.EMPLOYEE_FORM ='DEPT_DEPARTMENTS' THEN SET_MENU_ITEM_PROPERTY('MENU_DEPT.DEPARTMENTS',VISIBLE,PROPERTY_TRUE); ELSIF REC.FORM_ACCESS = 'Y' AND REC.EMPLOYEE_FORM ='EMP_EMPLOYEES' THEN SET_MENU_ITEM_PROPERTY('MENU_DEPT.EMPLOYEES',VISIBLE,PROPERTY_TRUE); END IF; --ACCESS TO USER_PRIV (ITEM) IF :GLOBAL.EMP_ID IN (101) THEN SET_MENU_ITEM_PROPERTY('ACCOUNT_SETTING_MENU.USER_PRIVILAGE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('ACCOUNT_SETTING_MENU.CREATE_NEW_ACCOUNT',ENABLED,PROPERTY_FALSE); END IF; END LOOP;END; مع العلم ان REC.EMPLOYEE_FORM ='DEPT_FILE' ]ده اسم القائمه وهكذا هى ده فكره بس ولا تطبق حرفيا كتابه الاكواد فى المنتدى شىء صعب جدااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااا تقديم بلاغ
بتاريخ: 15 يناير 201214 سنة كاتب الموضوع comment_219796 شكراً ليك جداً علي ردك الجميل يا أحمد باشابس لو ينفع توضحلي ليه إضافة created - Modified و أتمني من أحد الأخوة الأفاضل الرد علي السؤال الأول 1- ما الأفضل و الذي يستخدم بالفعل في المؤسسات الكبيرة ( إنشاء جدول للصلاحيات و آخر للمستخدمين - إستخدام صلاحيات الداتبيز الأصلية ) تم تعديل 15 يناير 201214 سنة بواسطة gamal_orcl تقديم بلاغ
بتاريخ: 15 يناير 201214 سنة comment_219819 اتمنى انى اكون فعلا قدرت اوضحلك الفكرهبلنسبه لموضوع CREATED_BY VARCHAR2(50 BYTE), CREATED_DATE DATE, MODIFIED_BY VARCHAR2(50 BYTE), MODIFIED_DATE DATE, دول مجموعه اعمده هملاهم فى run time بستفيد منهم انى اقدر اعرف من اللى ادى الصلاحيات للمستخدم وفى انهى وقت تقديم بلاغ
بتاريخ: 15 يناير 201214 سنة comment_219838 شكراً ليك جداً علي ردك الجميل يا أحمد باشابس لو ينفع توضحلي ليه إضافة created - Modified و أتمني من أحد الأخوة الأفاضل الرد علي السؤال الأول 1- ما الأفضل و الذي يستخدم بالفعل في المؤسسات الكبيرة ( إنشاء جدول للصلاحيات و آخر للمستخدمين - إستخدام صلاحيات الداتبيز الأصلية ) أنصحك جدول للصلاحيات وأخر للمستخدمين واذا تريد تعمل جدوللمجموعات لتقسم الصلاحيات على مجموعات عمل لتسهيل عمل توزيع الصلاحيات بدل من توزيعها على مستخدم مستخدم اذا كان حجم العمل كبير وفيه مستخدمين كثرأخوك ... تم تعديل 15 يناير 201214 سنة بواسطة scince تقديم بلاغ
بتاريخ: 16 يناير 201214 سنة كاتب الموضوع comment_219851 شكراً ليك جداً علي ردك الجميل يا أحمد باشابس لو ينفع توضحلي ليه إضافة created - Modified و أتمني من أحد الأخوة الأفاضل الرد علي السؤال الأول 1- ما الأفضل و الذي يستخدم بالفعل في المؤسسات الكبيرة ( إنشاء جدول للصلاحيات و آخر للمستخدمين - إستخدام صلاحيات الداتبيز الأصلية ) أنصحك جدول للصلاحيات وأخر للمستخدمين واذا تريد تعمل جدوللمجموعات لتقسم الصلاحيات على مجموعات عمل لتسهيل عمل توزيع الصلاحيات بدل من توزيعها على مستخدم مستخدم اذا كان حجم العمل كبير وفيه مستخدمين كثرأخوك ... شكراً لإهتمامك SCINCE لكن إذا كان ممكن التوضيح أكثر بالنسبة لموضوع المجموعات تم تعديل 16 يناير 201214 سنة بواسطة gamal_orcl تقديم بلاغ
بتاريخ: 19 يناير 201214 سنة comment_219915 الاخ الفاضل جمال مثلاً في جدول المجموعات يكون فيها رقم المجموعة واسمها وحالتها وأقصد بالحالة فعال والا لا وجدول المستخدم يكون اسم المستخدم وكلمة السر وانصحك تكون مشفرة وايش من مجموعة تريد ضمه وجدول الصلاحيات يكون فيه اسم التطبيق الذي يشمل اية شاشة واية ازرار تريد تفعيلها للمجموعة المختارة في القائمة مثلا وبهكذا تكون منح الصلاحيات للمجموعة ويورثها المستخدم المضاف له المجموعة هذا شرح مبسط ومختصر عن الفكرة إذا تريد تضيف لشاشة المستخدم وقت الدخول ويكون بين وقتين بداية ونهاية وكذا فترة الصلاحيات للمستخدم بتاريخ بداية ونهاية يحددها مدير النظام هذه كفكرة اضافية وانت على ماتريد أعمل أخي الكريم تم تعديل 19 يناير 201214 سنة بواسطة scince تقديم بلاغ
بتاريخ: 20 يناير 201214 سنة كاتب الموضوع comment_219918 الاخ الفاضل جمال مثلاً في جدول المجموعات يكون فيها رقم المجموعة واسمها وحالتها وأقصد بالحالة فعال والا لا وجدول المستخدم يكون اسم المستخدم وكلمة السر وانصحك تكون مشفرة وايش من مجموعة تريد ضمه وجدول الصلاحيات يكون فيه اسم التطبيق الذي يشمل اية شاشة واية ازرار تريد تفعيلها للمجموعة المختارة في القائمة مثلا وبهكذا تكون منح الصلاحيات للمجموعة ويورثها المستخدم المضاف له المجموعة هذا شرح مبسط ومختصر عن الفكرة إذا تريد تضيف لشاشة المستخدم وقت الدخول ويكون بين وقتين بداية ونهاية وكذا فترة الصلاحيات للمستخدم بتاريخ بداية ونهاية يحددها مدير النظام هذه كفكرة اضافية وانت على ماتريد أعمل أخي الكريم شكراً جزيلاً تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.