بتاريخ: 4 مارس 200421 سنة comment_2577 السلام عليكم ورحمة الله وبركاتهالاخوه الافاضل بإذن الله سوف أقوم بشرح طريقه :-ORACLE USER DEFINITION والتى تقوم علي أساس انشاء حساب فعلي في قاعده البيانات لكل مستخدم ونمنحه الصلاحيات اللازمه التى تتوافق مع طبيعة عمله في قاعدة البيانات .اولا:- سأقوم بشرح طريقه إنشاء المستخدم CREATE UAER <USER_NAME> IDENTIFIED BY <PASSWORD> +DEFAULT TABLESPACE <TABLESPACE_NAME> +TEMPORARY TABLESPACE <TABLESPACE_NAME> +PROFILE <PROFILE_NAME> +PASSWOED EXPIRE +ACCOUNT <LOCK>OR<UNLOCK> * بالنسبه للاسطر التى امامها علامه + فهي إختياريه وفي حال عدم كتابتها عند انشاء المستخدم يتم وضع القيم الافتراضيه لها .- مثال :- CREATE USER NEW_USER IDENTIFIED BY USER_PASS DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK ثانيا:- إنشاء ومنح الصلاحيات للمستخدمين - بعض التعاريف والمصطلحات :-* ال ROLE = وهي مثل الشنطه التى بها مجموعه صلاحيات " PRIVILEGES " * ال PRIVILEGES = وهي صلاحيات جاهزه ومنشأه من قبل الاوراكل في الDATABASE مثل SELECT TABLE , CREATE SESSION ..... * لايمكن إنشاء PRIVILEGE جديده لكن يمكن إنشاء ROLE ووضع اي PRIVILEGE بها .* يمكن وضع ROLE بداخل ROLE .* يجب أن يكون لديك صلاحيه CREATE ROLE لإنشاء ROLE جديده .- لإنشاء ROLE :- CREATE ROLE <ROLE_NAME> + IDENTIFIED BY <PASSWORD> * بالنسبه للسطر الذي امامه علامه + فهو اختياري وفي حال عدم كتابته عند انشاء الصلاحيه فسيتم وضع القيمه الافتراضيه لها وهي NOT IDENTIFIED . - مثال :- CREATE ROLE NEW_ROLE OR CREATE ROLE NEW_ROLE IDENTIFIED BY ROLE_PASS - لوضع PRIVILEGE او ROLE داخل الNEW_ROLE . GRANT <ROLE> OR <PRIVILEGE> TO NEW_ROLE - مثال :- GRANT DBA TO NEW_ROLE GRANT SELECT ON EMP TO NEW_USER - لمنح الصلاحيه "NEW_ROLE " للمستخدم NEW_USER :- GRANT <ROLE_NAME> TO <USER_NAME> +WITH ADMIN OPTION OR +WITH GRANT OPTION - مثال :- GRANT NEW_ROLE TO NEW_USER OR GRANT NEW_ROLE TO NEW_USER WITH ADMIN OPTION OR GRANT NEW_ROLE TO NEW_USER WITH GRANT OPTION ** الفرق بين WITH ADMIN OPTION و WITH GRANT OPTION :-WITH ADMIN OPTION :- في هذه الحاله فان المستخدم NEW_USER يستطيع القيام بمنح "GRANT "للصلاحيه "ROLE " التى لديه " NEW_ROLE " لاي مستخدم اخرمثلا للمستخدم SCOTT ...ولو تم سحب هذه الصلاحيه NEW_ROLE مستفبلا من NEW_USER فانها لن تسحب من المستخدم SCOTT . WITH GRANT OPTION :-في هذه الحاله فان المستخدم NEW_USER يستطيع القيام بمنح "GRANT "للصلاحيه "ROLE " التى لديه " NEW_ROLE " لاي مستخدم اخرمثلا للمستخدم SCOTT ...ولو تم سحب هذه الصلاحيه NEW_ROLE مستفبلا من NEW_USER فانها ستسحب تلقلئيا من المستخدم SCOTT . عمر باعقيلكندا - مونتريال [email protected] تقديم بلاغ
بتاريخ: 4 مارس 200421 سنة كاتب الموضوع comment_2578 السلام عليكم ورحمة الله وبركاته تكمله لموضوع الامن في البرامج المصممه بالديفلوبر الPROFILE هو ملف يعطى للمستخدم وبه خصائص مهمه جدا منها :-1- FAILED_LOGIN_ATTEMPTS :-هنا نحدد عدد المحاولات التى يمكن للمستخدم ان يحاول بها الاتصال بقاعده البيانات واذا لم يستطيع الدخول , سيتم عمل اقفال "Lock " لحسابه وعليه مراجعه الDBA .2- PASSWORD_LIFE_TIME :-هنا نحدد المده الزمنيه لكلمه المرور... وبعد انتهاء هذه المده سيطلب من المستخدم تغيير كلمه المرور .3-SESSIONS_PER_USER4-PRIVATE_SGA5-PASSWORD_GRACE_TIME والكثير غير ذلك ......الخصائص كثيره وسهله الفهم ولن اشرحها الان , ربما في موضوع جديد *لمعرفه الPROFILES الموجوده في الDATABASE :- SELECT * FROM DBA_PROFILES *كل قاعده بيانات يجب ان تحتوي علي 1 PROFILE على الاقل وهناك PROFILE يتم إنشاءه تلقائيا عند إنشاء الDATABASE واسمه DEFAULT .* أي مستخدم جديد ننشئه ولم نحدد له الPROFILE فسوف يصبح ال DEFAULT تابعا له .* يمكننا إنشاء اى عدد من الPROFILES وتحديد مواصفاتها كما نريد ولانشاء PROFILE جديد :- CREATE PROFILE NEW_PROFILE LIMIT FAILED_LOGIN_ATTEMPTS 10 SESSIONS_PER_USER 2 وهكذا تقوم بتحديد الخاصيه التى تريد اضافتها في هذا البروفايل الجديد * يمكنك تعديل خصائص اي PROFILE .* لتغيير الPROFILE للمستخدم قم بتنفيذ الكود التالي :- ALTER USER NEW_USER PROFILE NEW_PROFILE ثانيا : PASSWOED EXPIREاي ان المستخدم الذي انشناه وحددنا له هذه الجمله سيجبر علي تغيير كلمه المرور عند اتصاله في قاعده البيانات اول مره حيث ستظر له هذه الشاشه :- ثالثا : <ACCOUNT <LOCK>OR<UNLOCKعند إنشاء اي مستخدم جديد فان الحساب يكون UNLOCK تلقائيا, لكن في بعض الحالات قد نريد انشاء مستخدم ولكن لانريده ان يتصل بقاعده البيانات حاليا لاى سببمن الاسباب ...لذلك نقوم بتقفيل حسابه .لإعاده فتح حساب المستخدم :- ALTER USER <USER_NAME> ACCOUNT UNLOCK * يجب ان تكون لديك صلاحيه DBA لتنفيذ الاوامر السابقهوالسلام عليكم عمر باعقيلكندا - مونتريال [email protected] تقديم بلاغ
بتاريخ: 4 مارس 200421 سنة كاتب الموضوع comment_2579 السلام عليكم ورحمة الله وبركاته بعد ان عرفنا كيفيه انشاء USER و ROLE ووضع (PRIVILEGE(S او (ROLE(S داخل الROLE .الان سنقوم بعمل مثالي تطبيقي علي ماتعلمناه وسيكون تطبيقنا علي المستخدم SCOTT وجداوله EMP و DEPT فقط .< من ليس لديه هذا المستخدم في قاعدة البيانات التى بحوزته , فهناك طريقة سهله جدا لأنشاء هذا المستخدم SCOTTمع الجداول والبيانات الخاصه بها وذلك بالبحث عن ملف اسمه SCOTT.SQL في الهارديسك ومن ثم أخذ نسخه من هذا الملف وضعها في ال :c ثم نقم بتشغيل الSQL Plus من خلال المستخدم SYSTEM او اي مستخدم له صلاحيه DBA و ثم نقم بتنفيذ الكود التالي C:SCOTT.SQL@ وهكذا سيتم انشاء SCOTT مع جداوله بالكامل >نقوم بتشغيل الSQL Plus والاتصال بالمستخدم SYSTEM او اي مستخدم له صلاحيه DBA وذلك لمنح SCOTT صلاحيه DBA " لكي يستطيع انشاء USERS و ROLES ..... GRANT DBA TO SCOTT; الان نتصل من جديد بقاعدة البيانات " SQL Plus " بالمستخدم SCOTT لنبدء العمل الفعلي :-1- سنقوم بانشاء عدد 4 مستخدمين جدد كالتالي :- CREATE USER BOSS IDENTIFIED BY BOSS; هذا المستخدم له الصلاحيات الكامله "حذف تعديل وادخال واستعلام "علي جداول SCOTT . CREATE USER ADMIN IDENTIFIED BY ADMIN; وهذا المستخدم ستكون له صلاحيات تعديل وادخال واستعلام علي جداول SCOTT . CREATE USER INSERT_DATA IDENTIFIED BY INSERT_DATA; وهذا المستخدم ستكون له صلاحيات ادخال واستعلام بيانات علي جداول SCOTT . CREATE USER SELECT_DATA IDENTIFIED BY SELECT_DATA; وهذا المستخدم ستكون له صلاحيه الاستعلام فقط علي بيانات جداول SCOTT . 2- الان ننشئ الROLES اللازمه CREATE ROLE BOSS_ROLE; CREATE ROLE ADMIN_ROLE; CREATE ROLE INSERT_ROLE; CREATE ROLE SELECT_ROLE; 3- الان نقوم بوضع ال(PRIVILEGE(S او (ROLE(S اللازمه داخل الROLES الجديده :- " BOSS_ROLE " GRANT CREATE SESSION TO BOSS_ROLE; GRANT ALL ON EMP TO BOSS_ROLE; GRANT ALL ON DEPT TO BOSS_ROLE; ----------------- " ADMIN_ROLE " GRANT CREATE SESSION TO ADMIN_ROLE; GRANT SELECT ON EMP TO ADMIN_ROLE; GRANT INSERT ON EMP TO ADMIN_ROLE; GRANT UPDATE ON EMP TO ADMIN_ROLE; GRANT SELECT ON DEPT TO ADMIN_ROLE; GRANT INSERT ON DEPT TO ADMIN_ROLE; GRANT UPDATE ON DEPT TO ADMIN_ROLE; ----------------- " INSERT_ROLE " GRANT CREATE SESSION TO INSERT_ROLE; GRANT SELECT ON EMP TO INSERT_ROLE; GRANT INSERT ON EMP TO INSERT_ROLE; GRANT SELECT ON DEPT TO INSERT_ROLE; GRANT INSERT ON DEPT TO INSERT_ROLE; ----------------- " SELECT_ROLE " GRANT CREATE SESSION TO SELECT_ROLE; GRANT SELECT ON EMP TO SELECT_ROLE; GRANT SELECT ON DEPT TO SELECT_ROLE; 4- الان سنقوم بمنح هذه الROLES للUSERS :- GRANT BOSS_ROLE TO BOSS WITH ADMIN OPTION; GRANT ADMIN_ROLE TO ADMIN; GRANT INSERT_ROLE TO INSERT_DATA; GRANT SELECT_ROLE TO SELECT_DATA; الان يستطيع كل USER من استخدام صلاحياته علي جدول EMP و DEPT ولكن يجب عليه ان يحدد اسم مالك الجدول SCOTT مع اسم الجدول كالتالي :- SELECT * FROM SCOTT.EMP; 5- سنتقوم بعمل PUBLIC SYNONYM للجداول لكي يستطيع الUSERS استخدامها بدون وضع اسم SCOTT قبل اسم الجدول كالتالي :- CREATE PUBLIC SYNONYM EMP FOR EMP; CREATE PUBLIC SYNONYM DEPT FOR DEPT; الان نقوم بالاتصال بكل USER ونقوم بتجربه الصلاحيات المخوله له وذلك في برنامج ال SQL Plus وسوف نكمل ان شاء الله عمل ذلك في النمودج الذي سوف يتم تصميمه علي جدول EMP و DEPT .عمر باعقيلكندا - مونتريال[email protected] تقديم بلاغ
بتاريخ: 4 مارس 200421 سنة comment_2580 الف شكر اخي عمر ولا ندري كيف نجازيك على هذا المجهود تقديم بلاغ
بتاريخ: 4 مارس 200421 سنة comment_2601 بسم الله الرحمن الرحيمالسلام عليكم ورحمة الله وبركاتهوالحمد لله رب العالمين والصلاة والسلام على الحبيب المصطفى والى الامام دوماوبارك الله فيك ولك وعليك وجعله فى ميزان حسناتك--------------------------------------------------------------------------------------------------------سبحان الله العظيم - سبحان الله وبحمده عدد خلقه ورضاء نفسه وزنة عرشه ومداد كلماته ولا حول ولا قوة الابالله تقديم بلاغ
بتاريخ: 6 مارس 200421 سنة comment_2686 اخ عمر... يعجز لساني عن شكرك..فعلاً سأطلق عليك لقب: جوهرة المنتدى بارك الله فيك و لك و عليك و رزقك من حيث لا تحتسب.أخوك:سامر حداد تقديم بلاغ
بتاريخ: 7 مارس 200421 سنة comment_2783 مبدع ما شاالله عليك وألف شكر على طرحك للموضوعوصدق أن قال " جوهرة المنتدى "تحياتي / ابو ساري تقديم بلاغ
بتاريخ: 21 مارس 200421 سنة comment_3747 بصراحة انا دايما أشتغل الجزء الخاص بالأمن والصلاحيات على أساس جداول وجلوبال فاريابلز وبروفايل لكل يوزر بس احتمال البروجكت ده أجرب انى اعملها بطريقتك ؤولز وصلاحيات وشغل DBA شكرا جزيلا تقديم بلاغ
بتاريخ: 16 مايو 200421 سنة comment_7146 كلل الله مسعاك و جهدك بالخير و البركة اخي عمر باعقيل دائما نحن تلاميذ عندك ،، اعجز عن اصفك ،، و كما عرفتك لا تحب المزايدة و المدح لكن اقولها و بكل صراحة و امانة علمية .. العالم العربي بحاجة شديدة لك و لامثالك .بارك الله فيك و جزاك الله خيرا ،، و دمت في نشر العلم ،، تقديم بلاغ
بتاريخ: 13 يوليو 200421 سنة comment_9430 مجهود رائع يا أخ عمربس أنا لي تعليق بسيط عن تجربه في المشاريع الكبيره بتكون الصيانه صعبه جدا بهذا الإسلوب خاصة لو كنت محتاج أن مستخدم البرنامج هو اللي يتحكم في الصلاحيات في الحاله دي لازم نرجع لأسلوب تصميم جداول خاصة للسرية لكن ان كل مستخدم جديد أخلق له user على قاعدة البيانات هتكون مشكله متكرره كل يوم بس بصراحه هي قوية في السرية تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.