الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف يتم منح صلاحيه جدول لمستخدم أخر ؟

Featured Replies

بتاريخ:

hi, i am a new DBA and try want from you to solve this problem:
first i create two user accounts A and B, then i create a table in A and want B to Access it( execute SELECT statements on A's Table)
so tell me what is privileges and roles required.

بتاريخ:

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

اخي amkalisa , لنفترض ان المستخدم A لديه جدول بإسم locations ونريد ان نمنح

المستخدم B صلاحيه الاستعلام على هذا الجدول , لذلك سنقوم بتنفيذ الامر التالي :-

grant select on A.locations to B ;



طبعا يجب ان ينفذ هذا الامر مستخدم لديه صلاحيه DBA .

الان لو اراد المستخدم B الاستعلام عن بيانات جدول locations فيجب ان يكون استعلامه

بالطريقة التاليه

select * from A.locations ;



اي يجب ان يكتب اسم المستخدم صاحب الجدول واسم الجدول معاً , ولتفادي ذلك يجب ان نقوم

بإنشاء synonym للجدول locations لكي يستطيع ان يستخدمه المستخدم B بدون

ان يكتب إسم مالك الجدول المستخدم A بالطريقة التاليه :-

create public synonym location for A.location ;



ايضا يجب ان يقوم بتنفيذ هذا الامر مستخدم له صلاحيه DBA .

الان يستطيع المستخدم B الاستعلام عن جدول locations بالطريقه العاديه وهي :-

select * from locations ;




عمر باعقيل
كندا - مونتريال
[email protected]
MSN Messenger :-
[email protected]

بتاريخ:
  • كاتب الموضوع
السلام عليكم ورحمة الله وبركاته

اخي amkalisa , لنفترض ان المستخدم A  لديه جدول بإسم locations ونريد ان نمنح

المستخدم B  صلاحيه الاستعلام على هذا الجدول , لذلك سنقوم بتنفيذ الامر التالي :-

grant select on A.locations to B ;



طبعا يجب ان ينفذ هذا الامر مستخدم لديه صلاحيه DBA .

الان لو اراد المستخدم B  الاستعلام عن بيانات جدول locations  فيجب ان يكون استعلامه

بالطريقة التاليه

select * from A.locations ;



اي يجب ان يكتب اسم المستخدم صاحب الجدول واسم الجدول معاً , ولتفادي ذلك يجب ان نقوم

بإنشاء  synonym للجدول locations  لكي يستطيع ان يستخدمه المستخدم B  بدون

ان يكتب إسم مالك الجدول المستخدم A بالطريقة التاليه :-

create public synonym location for A.location ;



ايضا يجب ان يقوم بتنفيذ هذا الامر مستخدم له صلاحيه DBA .

الان يستطيع المستخدم B  الاستعلام عن جدول locations  بالطريقه العاديه وهي :-

select * from locations ;




عمر باعقيل
كندا - مونتريال
[email protected]
MSN Messenger :-
[email protected]


Thank you very much Omer and i hope keeping e-mailling. i am ammar from iraq. and i am new in oracle and i want to learn it , so i am trying and now i reached a good step, soo keep in touch. and thank you very much.
بتاريخ:
السلام عليكم ورحمة الله وبركاته

اخي amkalisa , لنفترض ان المستخدم A  لديه جدول بإسم locations ونريد ان نمنح

المستخدم B  صلاحيه الاستعلام على هذا الجدول , لذلك سنقوم بتنفيذ الامر التالي :-

grant select on A.locations to B ;



طبعا يجب ان ينفذ هذا الامر مستخدم لديه صلاحيه DBA .

الان لو اراد المستخدم B  الاستعلام عن بيانات جدول locations  فيجب ان يكون استعلامه

بالطريقة التاليه

select * from A.locations ;



اي يجب ان يكتب اسم المستخدم صاحب الجدول واسم الجدول معاً , ولتفادي ذلك يجب ان نقوم

بإنشاء  synonym للجدول locations  لكي يستطيع ان يستخدمه المستخدم B  بدون

ان يكتب إسم مالك الجدول المستخدم A بالطريقة التاليه :-

create public synonym location for A.location ;



ايضا يجب ان يقوم بتنفيذ هذا الامر مستخدم له صلاحيه DBA .

الان يستطيع المستخدم B  الاستعلام عن جدول locations  بالطريقه العاديه وهي :-

select * from locations ;




عمر باعقيل
كندا - مونتريال
[email protected]
MSN Messenger :-
[email protected]



يوجد خطأ في طريقة منح الصلاحية السابقة

select privilege on particular table or view is an


object privilege not a system privilege
the owner (user have the object) of the table can only grant privilege on the table

users have dba role can not grant any objects privilege on any objects that not in their schema

so
the user who can grant the select privilege is A.

note
you can grant this privilege with "grant option" to user B
so user B can grant this privilege to other user

connect a/password
grant select on locations to B with grant option;
connect b/password
grant select on a.locations to d;



[align=left]note
the "create public synonym" is system privilege and necessary to create public synonym and the role dba contian this privilege so any user have dba can create synonyms
so we need just "create public synonym" privilege to create public synonym not dba role


[/align]

  • بعد 4 أسابيع...
بتاريخ:

اخي amkalisa

  • بعد 8 شهور...
بتاريخ:

السلام عليكم ورحمة الله وبركاته،،
أخي وسيم (ZAK)

users have dba role can not grant any objects privilege on any objects that not in their schema

الرجاء مراجعة ما ذكرته !! لأنه إذا افترضنا أن اليوزر "C" يمتلك صلاحيات الـDBA Role (فقط)،، فانه بإمكانه إعطاء صلاحيات من نوع Object Privileges من أي SCHEMA لـSCHEMA أخري، مثال:
GRANT SELECT ON a.emp TO b;


إذاً ممكن نقول أن إهداء الصلاحية على أي Object تجوز فقط لمالك الـObject (مثال "A") أو الذي يملك الصلاحية GRANT ANY OBJECT PRIVILEGE والتي هي جزء من صلاحيات الـDBA Role

ملاحظة أخي ZAK:
فين إنت ما ظاهر ؟؟!! لأني بصراحة إستفدت منك كتير (بالرغم من قلة مشاركاتك - بالمقارنة مع تاريخ تسجيلك بالمنتدى) .

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.