السلام عليكم ورحمة الله وبركاته ...
إلى الإخوة جميعاً ::
أود معرفة خصائص grant وما هي الكلمات التي تلحق بها وشكراً..
سؤال آخر : هل هناك كلمة تعني كل الاختيارات إذا وضعنا where
السلام عليكم ورحمة الله وبركاته ...
إلى الإخوة جميعاً ::
أود معرفة خصائص grant وما هي الكلمات التي تلحق بها وشكراً..
سؤال آخر : هل هناك كلمة تعني كل الاختيارات إذا وضعنا where
اخي الكريم بالنسبه للسؤال الأول :
GRANT تعني منح او إعطاء وتستخدم لأعطاء الـ USER سماحيات معينه مثل إنشاء الجداول او حتى صلاحيات (DBA) .
مثال :
GRANT create table, create sequence, create view TO اسم المستخدم
ودائما ما يستخدم ما يسمى بـ ROLE وهو عباره عن مجموعة سماحيات موضوعه تحت اسم ما.
مثال :
[F=Gray]CREATE ROLE ABC;[/F]
انشأنا ROLE وسميناه ABC .
[F=Navy]GRANT create table, create view TO abc;[/F]
من المثال السابق وضعنا بعض السماحيات داخل الـ role المسمى ABC .
والآن بما ان الـ ROLE يحتوي على السماحيات نستطيع ان نعطي المستخدم السماحيات عن طريق الـ ROLE .
[F=Maroon]GRANT abc to USER1,USER2;[/F]
حيث ان :
USER1 : اسم المستخدم الأول
USER2 : اسم المستخدم الثاني
بمعنى انه بإمكانك ان تنشيء اكثر من ROLE وتضع فيها السماحيات التي تريدها وعلى اساسها تعطي كل مستخدم جديد السماحيات التي تناسبه.
ايضا بإمكانك ان تعطي شخص ما صلاحيه على حقل واحدفقط او اكثر من جدول ما مثال :
[F=Red]GRANT update (name, job) ON info TO user1, user2;[/F]
حيث ان :
info هو اسم الجدول .
اذا كان ماسبق هو ماتريده والأ فإن الموضوع لم ينتهي ولكن المثل يقول ( اهل مكه ادرى بشعابها ) لذا اترك الشرح للأستاذ (السني) ;) بحكم انه يعمل على DBA .
بالنسبه للسؤال الثاني ارجو ان توضح اكثر ولو كان فيه مثال يكون احسن .
السلام عليكم ورحمه الله وبركاته
الاخ أبو خالد
بالنسبه لكلمه grant فهي تستخدم لمنح صلاحيه ( Roles + Privilages ) لمستخدم مثل :
لاعطاء صلاحيه DBA للمستخدم SCOTT :
- يجب ان ينفذ هذا الامر مستخدم لديه صلاحيه DBA -
grant dba to scott
لاعطاء صلاحيه DBA ( لاكثر من مستخدم ) للمستخدم SCOTT و DEMO :
- يجب ان ينفذ هذا الامر مستخدم لديه صلاحيه DBA -
grant dba to scott,demo
لاعطاء ( اكثر من صلاحيه واحده ) صلاحيه DBA و صلاحيه CONNECT للمستخدم SCOTT :
- يجب ان ينفذ هذا الامر مستخدم لديه صلاحيه DBA -
grant dba,connect to scott
لاعطاء صلاحيه الاستعلام لكل الجداول الموجوده في قاعدة البيانات للمستخدم SCOTT :
- يجب ان ينفذ هذا الامر مستخدم لديه صلاحيه DBA -
grant select any table to scott
لاعطاء صلاحيه الاستعلام فقط على جدول ITEM التابع للمستخدم DEMO للمستخدم SCOTT :
- يجب ان ينفذ هذا الامر مستخدم لديه صلاحيه DBA أو من قبل المستخدم DEMO -
grant select on demo.item to scott
كما أن هناك خاصيتين ممكن إستخدامها عن تنفيذ امر GRANT وهي :
1- WITH ADMIN OPTION
2- WITH GRANT OPTION
مثال 1 :
conn system/manager
grant connect to scott with admin option
conn scott/tiger
grant connect to demo
هنا قمنا بمنح صلاحيه CONNECT للمستخدم SCOTT بخاصيه ADMIN OPTION
كما يستطيع المستخدم SCOTT منح صلاحيه CONNECT لمستخدم أخر وقد منحها
المستخدم SCOTT للمستخدم DEMO .
مثال 2 :
conn scott/tiger
grant select on emp to demo with grant option
conn demo/deom
grant select on scott.emp to xuser
هنا قمنا بنح صلاحيه SELECT على جدول EMP للمستخدم DEMO وبخاصيه GRANT OPTION
كما يستطيع المستخدم DEMO منح SELECT ON EMP لمستخدم أخر وقد
منحها للمستخدم XUSER .
الفرق بين ADMIN و GRANT
- في المثال الاول والخاص بخاصيه WITH ADMIN OPTIN فانه لو تم سحب صلاحيه CONNECT
من المتسخدم SCOTT فان نفس الصلاحيه لن تنسحب من المستخدم DEMO .
- وفي المثال الثاني والخاص بخاصيه WITH GRANT OPTION فانه لو تم سحب صلاحيه SELECT ON EMP
من المستخدم DEMO فان نفس الصلاحيه سوف تسحب تلقائيا من المستخدم XUSER .
ملاحظه :
لايمكن إستخدام WITH GRANT OPTION عند منح ( Roles + Privilages ) .
أما بالنسبه لسؤالك الثاني فالجواب نعم مثال ذلك :
SELECT * FROM EMP
WHERE 1=1
أو
SELECT * FROM EMP
WHERE USER = USER
أو
SELECT * FROM EMP
WHERE SYSDATE = SYSDATE
أرجوا ان اكون وفقت في الاجابه عن أسئلتك
عمر باعقيل
المدينه المنوره
baaqeel@onebox.com
جزاكم الله ألف خير ...
هذا الموضوع مغلق.