المواضيع الأخيرة
بحـث
شرح موضوع Oracle Database Security, شرح مبسط وموجز وسهل
صفحة 1 من اصل 1
شرح موضوع Oracle Database Security, شرح مبسط وموجز وسهل
سلام عليكم ورحمة الله وبركاته
تحية طيبة للجميع ...............
أقدم لكم اليوم شرح مبسط وسهل لموضوع Oracle Database Security اتمنى من الجميع الأستفادة منه .
الجزء الأول : Users
* عمل مستخدم جديد :-
لعمل مستخدم جديد في قاعدة البيانات يجب ان يكون متطابق مع الشكل الأتي
SQL كود
CREATE USER user_name IDENTIFIED BY password
[DEFAULT TABLESPACE def_tabspace]
[TEMPORARY TABLESPACE temp_tabspace];
حيث أن :
user_name : اسم المستخدم في قاعدة البيانات
password : كلمة المرور للمستخدم في قاعدة البيانات
def_tabspace : تحديد tablespace الأفتراضي لهذا المستخدم وأذا لم يتم تحديده يكون tablespace الأفتراضي هو SYSTEM
temp_tabspace : تحديد tablespaceالأفتراضي لإجراء عمليات الترتيب وأذا لم يتم تحديده يكون tablespace الأفتراضي هو SYSTEM
اليك المثال الأتي ليتضح الأمر أكثر
SQL كود
CONNECT system/manager
CREATE USER scott IDENTIFIED BY tiger;
يقوم هذا المثال بعمل مستخدم اسمه scott وكلمة المرور tiger و tablespace الافتراضي هو SYSTEM و temporary tablesapce هو SYSTEM
واليك المثال التالي أيضاً
SQL كود
CREATE USER omar IDENTIFIED BY riyati
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
يقوم المثال بعمل مستخدم اسمه omar وكلمة المرور هي riyati وtablespace الأفتراضي هو USERS و temporary tablespace هو TEMP
والآن اذا اردت ان يقوم هذا المستخدم الاتصال بقاعدة البيانات يجب ان يكون لديه هذه الصلاحية (create session) والتي يقوم المالك لهذا المستخدم ، واليك ما يلي :-
SQL كود
GRANT CREATE SESSION TO tiger;
---------------------------------------------------------------------------------------------------
* تغيير كلمة المرور للمستخدم:-
لتغيير كلمة المرور للمستخدم لزيادة الsecurity هنا طريقتين لذالك :-
1- الطريقة الأولى
SQL كود
ALTER USER scott IDENTIFIED BY lion;
2- الطريقة الثانية
SQL كود
CONNECT tiger/scott
PASSWORD
Changing password for scott
Old password: ******
New password: ******
Retype new password: ******
Password changed
-----------------------------------------------------------------------------------------------------
* حذف المستخدم :-
لحذف المستخدم يجب أن يكون لديك الصلاحية (drop user) واليك المثال الأتي :-
SQL كود
CONNECT system/manager
DROP USER tiger;
ولحذف المستخدم مع الكئانات التي يحويها مثل الجداول يجب أضافة كلمة cascade .
----------------------------------------------------------------
-------------------------------------
System Privileges
System Privilege : هو السماح للمستخدم بإنجاز حدث معين على قاعدة البيانات .
SQL كود
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 قم بعمل هذا الاستعلام
SQL كود
select name from system_privilege_map
الآن دعنا نبدأ بالعملي
* منح صلاحيات system privilege لمستخدم معين:-
SQL كود
GRANT CREATE SESSION, CREATE USER, CREATE TABLE TO scott;
يقوم هذا المثال بإعطاء المستخدم scott صلاحيات (CREATE SESSION و CREATE USER و CREATE TABLE )
ومن الممكن إضافة جملة WITH ADMIN OPTION ليتمكن هذا المستخدم من إعطاء هذه الصلاحيات لمستخدمين آخريين (يمكن منح مجموعة من الصلاحيات في نفس الأمر بوضع علامة فاصلة , )
SQL كود
GRANT EXECUTE ANY PROCEDURE TO hr WITH ADMIN OPTION
هنا تم منح المستخدم hr صلاحية (EXECUTE ANY PROCEDURE ) مع إضافة خاصية القدرة على منح هذه الصلاحية لأي مستخدم آخر، لذا فيمكن للمستخدم hr منح صلاحية (EXECUTE ANY PROCEDURE ) للمستخدم scott وكما يلي :-
SQL كود
CONNECT hr/hr
GRANT EXECUTE ANY PROCEDURE TO scott;
ولأعطاء جميع المستخدمين صلاحية معينة قم فإضافة الكلمة PUBLIC وكما يلي
SQL كود
CONNECT system/manager
GRANT EXECUTE ANY PROCEDURE TO PUBLIC;
* التأكد من System Privileges لمن تم منحها
ربما يريد البعض معرفة هذه الصلاحية لمن تم منحها أو إعطاءها ويتم ذلك بإستخدام user_sys_privs والذي يتكون من ثلاث أعمده هي :
username : إسم المستخدم
privilege : إسم الصلاحية
admin_option : هل لديه خاصية admin option أم لا
SQL كود
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
دعنا هذا المثال ليتضح الأمر أكثر :
SQL كود
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
* حذف الصلاحية من المستخدم:
الآن لو أراد احدكم حذف صلاحية معينة من مستخدم معين كيف يتم ذلك
SQL كود
CONNECT system/manager
REVOKE CREATE TABLE FROM scott;
هنا إستخدمنا الأمر REVOKE لحذف صلاحية CREATE TABLE من المستخدم scott
والآن عند الرجوع الى صلاحيات المستخدم scott يجب أن نجد صلاحية CREATE TABLE قد ألغيت وكما في الشكل الأتي
SQL كود
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
أتمنى تكونوا استفدتم
تحية طيبة للجميع ...............
أقدم لكم اليوم شرح مبسط وسهل لموضوع Oracle Database Security اتمنى من الجميع الأستفادة منه .
الجزء الأول : Users
* عمل مستخدم جديد :-
لعمل مستخدم جديد في قاعدة البيانات يجب ان يكون متطابق مع الشكل الأتي
SQL كود
CREATE USER user_name IDENTIFIED BY password
[DEFAULT TABLESPACE def_tabspace]
[TEMPORARY TABLESPACE temp_tabspace];
حيث أن :
user_name : اسم المستخدم في قاعدة البيانات
password : كلمة المرور للمستخدم في قاعدة البيانات
def_tabspace : تحديد tablespace الأفتراضي لهذا المستخدم وأذا لم يتم تحديده يكون tablespace الأفتراضي هو SYSTEM
temp_tabspace : تحديد tablespaceالأفتراضي لإجراء عمليات الترتيب وأذا لم يتم تحديده يكون tablespace الأفتراضي هو SYSTEM
اليك المثال الأتي ليتضح الأمر أكثر
SQL كود
CONNECT system/manager
CREATE USER scott IDENTIFIED BY tiger;
يقوم هذا المثال بعمل مستخدم اسمه scott وكلمة المرور tiger و tablespace الافتراضي هو SYSTEM و temporary tablesapce هو SYSTEM
واليك المثال التالي أيضاً
SQL كود
CREATE USER omar IDENTIFIED BY riyati
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
يقوم المثال بعمل مستخدم اسمه omar وكلمة المرور هي riyati وtablespace الأفتراضي هو USERS و temporary tablespace هو TEMP
والآن اذا اردت ان يقوم هذا المستخدم الاتصال بقاعدة البيانات يجب ان يكون لديه هذه الصلاحية (create session) والتي يقوم المالك لهذا المستخدم ، واليك ما يلي :-
SQL كود
GRANT CREATE SESSION TO tiger;
---------------------------------------------------------------------------------------------------
* تغيير كلمة المرور للمستخدم:-
لتغيير كلمة المرور للمستخدم لزيادة الsecurity هنا طريقتين لذالك :-
1- الطريقة الأولى
SQL كود
ALTER USER scott IDENTIFIED BY lion;
2- الطريقة الثانية
SQL كود
CONNECT tiger/scott
PASSWORD
Changing password for scott
Old password: ******
New password: ******
Retype new password: ******
Password changed
-----------------------------------------------------------------------------------------------------
* حذف المستخدم :-
لحذف المستخدم يجب أن يكون لديك الصلاحية (drop user) واليك المثال الأتي :-
SQL كود
CONNECT system/manager
DROP USER tiger;
ولحذف المستخدم مع الكئانات التي يحويها مثل الجداول يجب أضافة كلمة cascade .
----------------------------------------------------------------
-------------------------------------
System Privileges
System Privilege : هو السماح للمستخدم بإنجاز حدث معين على قاعدة البيانات .
SQL كود
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 قم بعمل هذا الاستعلام
SQL كود
select name from system_privilege_map
الآن دعنا نبدأ بالعملي
* منح صلاحيات system privilege لمستخدم معين:-
SQL كود
GRANT CREATE SESSION, CREATE USER, CREATE TABLE TO scott;
يقوم هذا المثال بإعطاء المستخدم scott صلاحيات (CREATE SESSION و CREATE USER و CREATE TABLE )
ومن الممكن إضافة جملة WITH ADMIN OPTION ليتمكن هذا المستخدم من إعطاء هذه الصلاحيات لمستخدمين آخريين (يمكن منح مجموعة من الصلاحيات في نفس الأمر بوضع علامة فاصلة , )
SQL كود
GRANT EXECUTE ANY PROCEDURE TO hr WITH ADMIN OPTION
هنا تم منح المستخدم hr صلاحية (EXECUTE ANY PROCEDURE ) مع إضافة خاصية القدرة على منح هذه الصلاحية لأي مستخدم آخر، لذا فيمكن للمستخدم hr منح صلاحية (EXECUTE ANY PROCEDURE ) للمستخدم scott وكما يلي :-
SQL كود
CONNECT hr/hr
GRANT EXECUTE ANY PROCEDURE TO scott;
ولأعطاء جميع المستخدمين صلاحية معينة قم فإضافة الكلمة PUBLIC وكما يلي
SQL كود
CONNECT system/manager
GRANT EXECUTE ANY PROCEDURE TO PUBLIC;
* التأكد من System Privileges لمن تم منحها
ربما يريد البعض معرفة هذه الصلاحية لمن تم منحها أو إعطاءها ويتم ذلك بإستخدام user_sys_privs والذي يتكون من ثلاث أعمده هي :
username : إسم المستخدم
privilege : إسم الصلاحية
admin_option : هل لديه خاصية admin option أم لا
SQL كود
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
دعنا هذا المثال ليتضح الأمر أكثر :
SQL كود
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
* حذف الصلاحية من المستخدم:
الآن لو أراد احدكم حذف صلاحية معينة من مستخدم معين كيف يتم ذلك
SQL كود
CONNECT system/manager
REVOKE CREATE TABLE FROM scott;
هنا إستخدمنا الأمر REVOKE لحذف صلاحية CREATE TABLE من المستخدم scott
والآن عند الرجوع الى صلاحيات المستخدم scott يجب أن نجد صلاحية CREATE TABLE قد ألغيت وكما في الشكل الأتي
SQL كود
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
أتمنى تكونوا استفدتم
شعاع القمر- مشرف
- عدد الرسائل : 121
العمر : 32
تاريخ التسجيل : 12/09/2008
مواضيع مماثلة
» موســوعة البرامج الضرورية بعد تنزيل الويندوز ♣ ♥| كل ذلك فى موضوع واحد |♣ ♥ حصريــا
» موســوعة البرامج الضرورية بعد تنزيل الويندوز ♣ ♥| كل ذلك فى موضوع واحد |♣ ♥ حصريــا
» موســوعة البرامج الضرورية بعد تنزيل الويندوز ♣ ♥| كل ذلك فى موضوع واحد |♣ ♥ حصريــا
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الخميس أكتوبر 01, 2015 4:17 pm من طرف info1961
» برنامج حسابات المقاولات والسمسار العقاري
السبت مايو 30, 2015 2:20 pm من طرف برامج حسابات
» برنامج صيدلية PharmaCare
الثلاثاء مارس 10, 2015 9:50 am من طرف جيبسون
» برنامج حسابات ومخازن عربى
الأحد فبراير 15, 2015 8:58 pm من طرف فيصل
» برامج حسابات اوراكل ويب ديزاين اي كلاود - مخازن - مقاولات - بيع وحدات جاهزه - سمسار
الجمعة يناير 23, 2015 5:07 pm من طرف برامج حسابات
» برامج حسابات ومخازن ويب ابليكشن
الجمعة يناير 23, 2015 5:06 pm من طرف برامج حسابات
» برنامج محاسبي ومخازن نسخة كاملة مجانية وعربي
السبت أكتوبر 25, 2014 8:47 pm من طرف عدنيوافتخر
» تعلم لغة C++ Oop الفرق بين لغة C و C++
الإثنين يوليو 20, 2009 11:59 am من طرف ابوعبدالرحمن
» يا أخ المسلم
الأربعاء يونيو 17, 2009 10:30 am من طرف hmada