الاثنين، 30 أبريل 2012

الدرس الخامس عشر: انشاء الصلاحيات و Roles



الدرس الخامس عشر: انشاء الصلاحيات وRoles, ضمن سلسلة دروس كيف تبدأ في تعلم الأوراكل

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

في هذا الدرس سنتحدث عن ROLES وكيفية انشائها وسنشرح بعض النقاط المهمه بها

ROLES
هو عبارة عن مجموعة من الشروط يتم انشائها ليتم الزام المستخدم بها وهي

Creating a Role
لانشاء ال Role يجب انشاء Role system privileges وليتم ذلك نتبع الخطوات التالية
كود:
CREATE ROLE role_name
[ NOT IDENTIFIED |
IDENTIFIED {BY password | USING [schema.] package | EXTERNALLY | GLOBALLY };
حيث
role_name هو اسم ال role

NOT IDENTIFIED :
توضع في حال تعريف ال role حيث تفعل الrole ولا يحتاج لكلمة سر لتفعيل ال role

IDENTIFIED
هنا يجب ان تقوم بتعريف خصائص ال role قبل تفعيلها

BY password
هنا تعني ان المستخدم يجب ان يضع كلمة سر قبل تفعيل ال role

USING package
هنا انك قد انشأت مجموعة من role ويجب تطبيقها من خلال البرنامج

EXTERNALLY
وهذا يعني انك تحتاج الى تعريف خصائص EXTERNALLY قبل تشغيل ال role

GLOBALLY
يعني ان المستخدم يستطيع تعريف او الاطلاع على اليوزر عن طريق مجلدات ال enterprise

مع ملاحظة اننا اذا لم نضع NOT IDENTIFIED او نضع IDENTIFIED سوف يتم انشاء ال role على اساس انها NOT IDENTIFIED

مثال
ننشئ role ونسميها test_role
كود:
CREATE ROLE test_role;
هنا ننشئ role ولكن نستخدم الباسوورد حيث يطلب الباسوورد عند تشغيلها
كود:
CREATE ROLE test_role
IDENTIFIED BY test123;

Grant Privileges (on Tables) to Roles
اعطاء الصلاحيات على الجداول ل role باستخدام privilege
وهناك انواع من الصلاحيات على الجداول
* Select
لاعطاء صلاحية الاستعلام باستخدام جملة select
*Insert
هو اعطاء صلاحية اضافة سجل جديد على الجداول
*Update
اعطاء صلاحية التحديث على سجل في الجدول
*Delete
اعطاء صلاحية الحذف لسجل من الجدول
*References
اعطاء صلاحية لانشاء ال Constraints
* Alter
اعطاء صلاحية التعديل على الجدول
*Index
اعطاء صلاحية لانشاء ال index على الجدول

القاعدة
كود:
 grant privileges on object to role_name
مثال على اعطاء بعض الصلاحيات ل Roles
كود:
grant select, insert, update, delete on suppliers to test_role;
مثال على اعطاء الصلاحيات لجميع ال Roles
كود:
grant all on suppliers to test_role;
إلغاء الصلاحيات عن Roles
Revoke Privileges (on Tables) to Roles

هذه الخاصية هي كيفية الغاء الصلاحية عن Roles
كود:
revoke privileges on object from role_name;
مثال الغاء عن مجموعة من الصلاحيات
كود:
revoke delete on suppliers from test_role;
مثال على الغاء جميع الصلاحيات
كود:
revoke all on suppliers from test_role;

اعطاء الصلاحية ل Roles لCompilation Procedure /Functions
Grant Privileges (on Functions/Procedures) to Roles


الصلاحية تسمى ب Execute
وهي تمكن الRoles من عمل ترجمة وتشغيل للبروسيجر والفانكشن بشكل مباشر
كود:
grant execute on Find_Value to test_role;
الغاء الصلاحية عن ال roles
كود:
revoke execute on object from role_name;
مثال
كود:
revoke execute on Find_Value from test_role;

اعطاء صلاحيات ال Roles الى المستخدم
Granting the Role to a User


وهي تمكن من السيطرة على صلاحيات المستخدم للنظام
القاعدة
كود:
GRANT role_name TO user_name;
مثال
كود:
GRANT test_role to smithj;
استخدام ال The SET ROLE statement
هذه الخاصية التي تدعى ال Set Role لتفعيل او عدم تفعيل ال Roles
قاعدة الاستخدام
كود:
SET ROLE
( role_name [ IDENTIFIED BY password ]
| ALL [EXCEPT role1, role2, ... ]
| NONE );
role_name اسم ال Role
IDENTIFIED BY password
هنا لوضع كلمة سر على ال Role
ALL
تعني تفعيل جميع ال Roles والتي تكون داخل قائمة ال Except
NONE
لعدم تفعيل ال Role
مثال
كود:
SET ROLE test_role IDENTIFIED BY test123;

خصائص تحويل ال role مثل ال DefualtRole
Setting a role as DEFAULT Role


قاعدة ....
كود:
ALTER USER user_name
DEFAULT ROLE
( role_name
| ALL [EXCEPT role1, role2, ... ]
| NONE );
role_name اسم ال Role
ALL
تعني تفعيل جميع ال Roles والتي تكون داخل قائمة ال Except
NONE
لعدم تفعيل ال Role

مثال
كود:
ALTER USER smithj
DEFAULT ROLE
test_role;
مثال 2
كود:
ALTER USER smithj
DEFAULT ROLE
ALL EXCEPT test_role;

Dropping a Role
حذف ال Role

القاعدة 
كود:
DROP ROLE role_name;
امثلة
كود:
DROP ROLE test_role




انتهى الدرس

هناك تعليق واحد: