الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

grant

مغلق
بدأه أبوخالد في 15 سبتمبر 2001 · 3 رد · 1,187 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

إلى الإخوة جميعاً ::

أود معرفة خصائص grant وما هي الكلمات التي تلحق بها وشكراً..

سؤال آخر : هل هناك كلمة تعني كل الاختيارات إذا وضعنا where

#2

اخي الكريم بالنسبه للسؤال الأول :

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 .

بالنسبه للسؤال الثاني ارجو ان توضح اكثر ولو كان فيه مثال يكون احسن .

#3

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

الاخ أبو خالد

بالنسبه لكلمه 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

#4

جزاكم الله ألف خير ...

هذا الموضوع مغلق.

مواضيع مشابهة