بتاريخ: 7 يوليو 200817 سنة comment_132671 السلام عليكم ورحمة الله وبركاتهتحية طيبة للجميع ...............أقدم لكم اليوم شرح مبسط وسهل لموضوع Oracle Database Security اتمنى من الجميع الأستفادة منه .الجزء الأول : Users* عمل مستخدم جديد :-لعمل مستخدم جديد في قاعدة البيانات يجب ان يكون متطابق مع الشكل الأتي CREATE USER user_name IDENTIFIED BY password [DEFAULT TABLESPACE def_tabspace] [TEMPORARY TABLESPACE temp_tabspace]; حيث أن :user_name : اسم المستخدم في قاعدة البياناتpassword : كلمة المرور للمستخدم في قاعدة البياناتdef_tabspace : تحديد tablespace الأفتراضي لهذا المستخدم وأذا لم يتم تحديده يكون tablespace الأفتراضي هو SYSTEMtemp_tabspace : تحديد tablespaceالأفتراضي لإجراء عمليات الترتيب وأذا لم يتم تحديده يكون tablespace الأفتراضي هو SYSTEMاليك المثال الأتي ليتضح الأمر أكثر CONNECT system/manager CREATE USER scott IDENTIFIED BY tiger; يقوم هذا المثال بعمل مستخدم اسمه scott وكلمة المرور tiger و tablespace الافتراضي هو SYSTEM و temporary tablesapce هو SYSTEM واليك المثال التالي أيضاً CREATE USER omar IDENTIFIED BY riyati DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; يقوم المثال بعمل مستخدم اسمه omar وكلمة المرور هي riyati وtablespace الأفتراضي هو USERS و temporary tablespace هو TEMPوالآن اذا اردت ان يقوم هذا المستخدم الاتصال بقاعدة البيانات يجب ان يكون لديه هذه الصلاحية (create session) والتي يقوم المالك لهذا المستخدم ، واليك ما يلي :- GRANT CREATE SESSION TO tiger; ---------------------------------------------------------------------------------------------------* تغيير كلمة المرور للمستخدم:-لتغيير كلمة المرور للمستخدم لزيادة الsecurity هنا طريقتين لذالك :-1- الطريقة الأولى ALTER USER scott IDENTIFIED BY lion; 2- الطريقة الثانية CONNECT tiger/scott PASSWORD Changing password for scott Old password: ****** New password: ****** Retype new password: ****** Password changed -----------------------------------------------------------------------------------------------------* حذف المستخدم :-لحذف المستخدم يجب أن يكون لديك الصلاحية (drop user) واليك المثال الأتي :- CONNECT system/manager DROP USER tiger; ولحذف المستخدم مع الكئانات التي يحويها مثل الجداول يجب أضافة كلمة cascade .-----------------------------------------------------------------------------------------------------بهذا يكون الجزء الأول قد انتهت والموضوع مفتوح للنقاش .وجزاكم الله خيراً تقديم بلاغ
بتاريخ: 8 يوليو 200817 سنة comment_132788 ويمكننا عمل link to this user by specific profileعبارة عن مجموعة من السماحيات لهذا المستخدم مجمعة مع بعضها وعند ربط المستخدم بها بتمتع بكل هذه السماحياتLink user by specific Profile 1- Create new profile------------------------------------------------------ CREATE PROFILE sis_profile LIMIT SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL UNLIMITED CONNECT_TIME UNLIMITED IDLE_TIME UNLIMITED LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL UNLIMITED COMPOSITE_LIMIT UNLIMITED PRIVATE_SGA UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LIFE_TIME UNLIMITED PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_LOCK_TIME UNLIMITED PASSWORD_GRACE_TIME UNLIMITED PASSWORD_VERIFY_FUNCTION NULL/2- Alter that user (hr,scott,…..) to be on that profileEX__ ----------------------------------------- CREATE USER ezz IDENTIFIED BY sis DEFAULT TABLESPACE sistbs TEMPORARY TABLESPACE sistmpgrant create,delete,update,inser,... to ezzgrant .......grant ....... PROFILE sis_profile ACCOUNT UNLOCK/ تقديم بلاغ
بتاريخ: 24 يوليو 200817 سنة كاتب الموضوع comment_133986 الجزء الثاني : System Privileges System Privilege : هو السماح للمستخدم بإنجاز حدث معين على قاعدة البيانات . CREATE SESSION صلاحية الإتصال بقاعدة البيانات CREATE SEQUENCE صلاحية بناء متسلسل CREATE SYNONYM صلاحية بناء مرادف CREATE TABLE صلاحية بناء جدول CREATE ANY TABLE صلاحية بناء جدول في أي سيكما DROP TABLE صلاحية حذف جدول DROP ANY TABLE صلاحية حذف جدول في أي سيكما CREATE PROCEDURE صلاحية بناء بروسيجر EXECUTE ANY PROCEDURE صلاحية تنفيذ بروسيجر في أي سيكما CREATE USER صلاحية بناء مستخدم DROP USER صلاحية حذف مستخدم CREATE VIEW صلاحية بناء منظر هنا تم عرض مجموعة من System Privilege ووظيفتها ولمعرفة جميع System Privilege قم بعمل هذا الاستعلام select name from system_privilege_map الآن دعنا نبدأ بالعملي * منح صلاحيات system privilege لمستخدم معين:- GRANT CREATE SESSION, CREATE USER, CREATE TABLE TO scott; يقوم هذا المثال بإعطاء المستخدم scott صلاحيات (CREATE SESSION و CREATE USER و CREATE TABLE )ومن الممكن إضافة جملة WITH ADMIN OPTION ليتمكن هذا المستخدم من إعطاء هذه الصلاحيات لمستخدمين آخريين (يمكن منح مجموعة من الصلاحيات في نفس الأمر بوضع علامة فاصلة , ) GRANT EXECUTE ANY PROCEDURE TO hr WITH ADMIN OPTION هنا تم منح المستخدم hr صلاحية (EXECUTE ANY PROCEDURE ) مع إضافة خاصية القدرة على منح هذه الصلاحية لأي مستخدم آخر، لذا فيمكن للمستخدم hr منح صلاحية (EXECUTE ANY PROCEDURE ) للمستخدم scott وكما يلي :- CONNECT hr/hr GRANT EXECUTE ANY PROCEDURE TO scott; ولأعطاء جميع المستخدمين صلاحية معينة قم فإضافة الكلمة PUBLIC وكما يلي CONNECT system/manager GRANT EXECUTE ANY PROCEDURE TO PUBLIC; * التأكد من System Privileges لمن تم منحهاربما يريد البعض معرفة هذه الصلاحية لمن تم منحها أو إعطاءها ويتم ذلك بإستخدام user_sys_privs والذي يتكون من ثلاث أعمده هي :username : إسم المستخدمprivilege : إسم الصلاحية admin_option : هل لديه خاصية admin option أم لا CONNECT scott/tiger SELECT * FROM user_sys_privs; USERNAME PRIVILEGE ADM ---------------------- -------------------------------- --- PUBLIC EXECUTE ANY PROCEDURE NO TIGER CREATE SESSION NO TIGER CREATE TABLE NO TIGER CREATE USER NO TIGER EXECUTE ANY PROCEDURE YES نلاحظ هنا أن هذا الإستعلام قد أعطنا صلاحيات المستخدم SCOTT دعنا هذا المثال ليتضح الأمر أكثر : CONNECT SCOTT/TIGER CREATE USER omar IDENTIFIED BY riyati; User created. ************************************************ SQL> DROP USER omar; DROP USER omar * ERROR at line 1: ORA-01031: insufficient privileges هذا المثال يتكون من مرحلتين:المرحلة الأولى : قام المستخدم scott ببناء المستخدم omar وتمت العملية دون مشاكل لأن لديه صلاحية (CREATE USER)المرحلة الثانية : قام المستخدم scott بحذف المستخدم omar ولم تنجح العملية لأنه ليس لديه صلاحية (DROP USER ) وظهر الرسالة ORA-01031: insufficient privileges* حذف الصلاحية من المستخدم:الآن لو أراد احدكم حذف صلاحية معينة من مستخدم معين كيف يتم ذلك CONNECT system/manager REVOKE CREATE TABLE FROM scott; هنا إستخدمنا الأمر REVOKE لحذف صلاحية CREATE TABLE من المستخدم scottوالآن عند الرجوع الى صلاحيات المستخدم scott يجب أن نجد صلاحية CREATE TABLE قد ألغيت وكما في الشكل الأتي CONNECT steve/button SELECT * FROM user_sys_privs USERNAME PRIVILEGE ADM ---------------------- -------------------------------- --- PUBLIC EXECUTE ANY PROCEDURE NO STEVE CREATE SESSION NO STEVE CREATE TABLE NO STEVE EXECUTE ANY PROCEDURE YES وهكذا نكون قد أنتهينا من الجزء الثاني بحمد الله ، أن أصابت فمن الله وإن اخطأت فمن نفسي والشيطان ونترك الموضوع للنقاش تقديم بلاغ
بتاريخ: 3 مارس 200917 سنة comment_150354 شكرا لك اخى الكريم على وضعك هذا الموضوع الرائع وننتظر الافضل دائما معك تقديم بلاغ
بتاريخ: 5 أبريل 200917 سنة comment_152899 جزاك الله كل خير و بارك الله فيك و دائما فى تقدم ان شاء الله تقديم بلاغ
بتاريخ: 16 مايو 200916 سنة comment_157067 شكرا ولكن كيف يزيد نغيير كلمة المرور من الsecurity? تقديم بلاغ
بتاريخ: 3 يوليو 200916 سنة comment_162089 جزاك الله كل خير و بارك الله فيك و دائما فى تقدم ان شاء الله تقديم بلاغ
بتاريخ: 11 أكتوبر 200916 سنة comment_172495 الف شكر لك على الدرس الرائع و توضح النقاط بشكل جيدتحيتي لك تم تعديل 11 أكتوبر 200916 سنة بواسطة إسكادا تقديم بلاغ
بتاريخ: 20 أكتوبر 200916 سنة comment_173625 السلام عليكم ورحمة الله وبركاته موضوع ممتاز لكن يوجد ما يسمى ب oracle sql injection وهو نوع من الهاكر قادر على مهاجمه قواعد البيانات اذا لم يؤخذ فى الاعتبار كيفيه الحمايه منهاوهذه هى نقطه بحثى ف الماجستير ، ياريت لو حد يتقن هذا الموضوع ممكن يساعدنى فى الموضوع دا تقديم بلاغ
بتاريخ: 28 فبراير 201016 سنة comment_186003 بارك الله فيكولكن لو حبيت أطلع رسالة برقم الايرور ORA-01031: insufficient privileges تقديم بلاغ
بتاريخ: 8 أغسطس 201015 سنة comment_198346 موضوع مبسط ورائعأشكر الاخ الذي قام بوضعه لبساطته وفقكم اللهhttp://securedb.blogspot.comمحمد تقديم بلاغ
بتاريخ: 9 أغسطس 201015 سنة comment_198385 سلمت يداك وفي انتظار المزيد وبالفعل أسلوبك رائع وجذاب في طرح الموضوع تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.