الانتقال إلى المحتوى
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

بتاريخ:

السلام عليكم و رحمة الله و بركاته





أنا بقالي تقريباً 3 أيام بدور علي أفضل طريقة للتحكم بالصلاحيات و إنشائها لحماية البرنامج
و هذه الموضوع قمت بالإطلاع عليها

http://www.araboug.o...&hl=count&st=15
http://www.araboug.o...showtopic=46139
http://www.araboug.o...showtopic=47797
http://www.araboug.o...showtopic=48475
http://www.araboug.o...showtopic=35177
http://www.araboug.o...?showtopic=9261
http://www.araboug.o...showtopic=35569
http://www.araboug.o...showtopic=42416
http://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;
begin
if :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
لكن الأكواد مش واضحة لخطأ في إظهار الاكواد بالمنتدي

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

السؤال الأول أي الطريقتين الأفضل و لماذا ؟

post-94076-0-86757200-1326539216_thumb.jpg

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

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

السلام عليكم و رحمة الله و بركاته





هاوضح أسئلتي و أختصرها
1- ما الأفضل و الذي يستخدم بالفعل في المؤسسات الكبيرة
( إنشاء جدول للصلاحيات و آخر للمستخدمين - إستخدام صلاحيات الداتبيز الأصلية )


2- عايز احدد لكل يوزر شاشات معينة يستطيع فتحها و التعامل معها بخلاف غيره من المستخدمين إن امكن
ملحوظة : تم الإطلاع علي هذا الموضوع أيضاً
http://www.araboug.o...mmsalman87&st=0
إلا أنه لم يتطرق للطريقة المراد الوصول إليها


3 - طريقة إستخدام صلاحيات الداتبيز الأصلية و التحكم بها من خلال أمري (Grant - Revoke)
كيف أتحكم من خلالها في رؤية التقرير من عدمه أو مثلاُ طباعته من عدمه
و ما مدي إمكانية إضافة صلاحية جديدة غير موجودة من ضمن صلاحيات الداتابيز و التحكم بها من خلال الشاشات

و السلام عليكم و رحمة الله و بركاته

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

بتاريخ:

2-

عايز احدد لكل يوزر شاشات معينة يستطيع فتحها و التعامل معها بخلاف غيره من المستخدمين إن امكن



ملحوظة : تم الإطلاع علي هذا الموضوع أيضاً





إلا أنه لم يتطرق للطريقة المراد الوصول إليها





هرد على نقطه 2
على حسب علمى وتجربتى -انا بتكلم باختصار عن النقطه اللى انت محتاجها-
عملت شاشه لوجن فيها ان المستخدم يدخل رقمه مثلا او اسمه وكلمه السر
وعملت زرار اسمه enter
اعمل على اسكيما HR
قمت بانشاء MENU
VISIBLE = 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'

]ده اسم القائمه وهكذا

هى ده فكره بس ولا تطبق حرفيا

كتابه الاكواد فى المنتدى شىء صعب جدااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااا

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

شكراً ليك جداً علي ردك الجميل يا أحمد باشا
بس لو ينفع توضحلي ليه إضافة created - Modified

و أتمني من أحد الأخوة الأفاضل الرد علي السؤال الأول

1- ما الأفضل و الذي يستخدم بالفعل في المؤسسات الكبيرة
( إنشاء جدول للصلاحيات و آخر للمستخدمين - إستخدام صلاحيات الداتبيز الأصلية )

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

بتاريخ:

اتمنى انى اكون فعلا قدرت اوضحلك الفكره
بلنسبه لموضوع


CREATED_BY VARCHAR2(50 BYTE),
CREATED_DATE DATE,
MODIFIED_BY VARCHAR2(50 BYTE),
MODIFIED_DATE DATE,


دول مجموعه اعمده هملاهم فى run time بستفيد منهم انى اقدر اعرف من اللى ادى الصلاحيات للمستخدم وفى انهى وقت

بتاريخ:

شكراً ليك جداً علي ردك الجميل يا أحمد باشا
بس لو ينفع توضحلي ليه إضافة created - Modified

و أتمني من أحد الأخوة الأفاضل الرد علي السؤال الأول

1- ما الأفضل و الذي يستخدم بالفعل في المؤسسات الكبيرة
( إنشاء جدول للصلاحيات و آخر للمستخدمين - إستخدام صلاحيات الداتبيز الأصلية )

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

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

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


شكراً ليك جداً علي ردك الجميل يا أحمد باشا
بس لو ينفع توضحلي ليه إضافة created - Modified

و أتمني من أحد الأخوة الأفاضل الرد علي السؤال الأول

1- ما الأفضل و الذي يستخدم بالفعل في المؤسسات الكبيرة
( إنشاء جدول للصلاحيات و آخر للمستخدمين - إستخدام صلاحيات الداتبيز الأصلية )

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

شكراً لإهتمامك SCINCE لكن إذا كان ممكن التوضيح أكثر بالنسبة لموضوع المجموعات

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

بتاريخ:

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

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

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

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

شكراً جزيلاً

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

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

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

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

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

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.