الاثنين، 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




انتهى الدرس

الدرس الرابع عشر : انشاء وحذف ال Synonyms



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

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

سنتناول في هذا الدرس كيفية التعرف على ال Synonyms وماهي وكيفية انشائها وحذفها

ال Synonyms
هو عبارة عن بديل لمحتويات قاعدة البيانات مثل الtables, views, sequences, stored procedures, وغيرها من المحتويات وفائدتها ان المستخدم يستطيع ان يجلب او يعدل من خلال سكيما مختلفة 

قاعدة الانشاء
كود:
create [or replace]  [public]  synonym [schema .] synonym_name
for [schema .] object_name [@ dblink];

or replace وهذه نستخدمها عندما نريد التعديل على Synonyms موجود اصلا

public نكتبها اذا كنا نريد جميع المستخدمين على قاعدة البيانات الاستفادة منها

schema . وهنا نكتب اسم السكيما التي نريد انشاء ال Synonyms عليها

object_name هو اسم tables, views, sequences, stored procedures التي نريد انشائها .

وهي عبارة عن
كود:
 table                         package
view                           materialized view
sequence                  ************************ class schema object
stored procedure    user-defined object
function                     synonym
مثال
كود:
create public synonym suppliers
for app.suppliers;
كما نرى اننا انشأنا synonym على سكيما app على جدول suppliers ونوعه puplic يعني يستطيع اي مستخدم من سكيما اخرى ان يستعلم على هذه السكيما وهنا تأتي فائدة ال synonym انها تستطيع من خلالها القرأة من اكثر من سكيما
كود:
select * from suppliers;

وللتعديل على synonym
نكتب التالي
كود:
create or replace public synonym suppliers
for app.suppliers;

اما لحذف ال synonym
كود:
drop [public] synonym [schema .] synonym_name [force];
حيث public تستخدم في حال كان ال synonym اصلا puplic

force 
تستخدم لحذف ال synonym حتى لو كان لها تبعيات فإنها يجبر الاوراكل على حذفها ولا يستحب استخدامها لانها قد تعطل عمل ال oject

مثال
كود:
drop public synonym suppliers;

انتهى الدرس