• 1
حسام فيصل

دورة في إدارة قواعد البيانات أوراكل


سؤال

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

إن مجال إدراة قواعد البيانات أوركل لا يجد حقه في هذا المنتدى ، لأن أغلب المشاركات تتمحور حول تطوير التطبيقات بشكل عام ، لذلك رغبت في أن أستغل فترة الصيف لنقوم بسلسلة دروس حول إدارة القاعدة ، أي يمكن أن نعتبرها دورة متكاملة في إدارة القاعدة من المستخدمين حتى البنى الفيزيائية كـDatafiles و Redo log Files و البنى المنطقية Table Spaces ، مروراً بالنسخ الإحتياطي Backup و استخدام RMAN ... إلخ بحسب ما يسمح لنا الوقت .

أتمنى أن تأخذ هذ الدورة بأهمية و أجد التفاعل و يتم التثبيت لكي نستثمر الوقت بأفضل وسيلة للتعلم .

و بدلاً من كثرة الكلام لنبدأ الفعل مع القسم الأول إدارة المستخدمين .

ما هي الحاجة إلى وجود مستخدمين ؟

تكمن الحاجة في حتمية وجود خصوصية للبيانات بحيث يستطيع كل شخص أن يحتفظ ببيناته و قدرته على تعديلها و منح الحق لغيره بالإطلاع عليها أو إجراء العمليات المختلفة عليها .

عندما يريد أحد التعامل مع أوراكل يجب أن تكون له سماحية الدخول إلى النظام و هذه السماحية تؤخذ بالطرق : :

1- Data Dictionary قاموس البيانات .

2- Operating System نظام التشغيل .

3- Networking الشبكة .

سيكون موضوع بحثنا هو الطريقتين الأولى و الثانية .

قبل البدء بعملية إنشاء المستخدمين يجب أن أوضح المصطلحات التالية :

1- Schema المخطط : و هي مجموعة objects التي يملكها المستخدم أي الجداول – index –PL/SQL CODE ....

2- Table Space الفضاء الجدولي : منطقياً هو المكان المخصص لكل مستخدم لكي يقوم بتخزين بياناته عليه ، فيزيائياً هو مجموعة من الملفات التي تخزن البيانات ندعوها data file .

3- Privileges الصلاحية : و تعني إمكانية قيام مستخدم معين بعملية ما على البيانات أو إنشاء بنى جديدة أو حذف بنى موجودة ....إلخ .

4-Quotas : و هي السماحة المخصصة للمستخدم للتخزين على فضاء tablespace معين ...

تعليمة إنشاء user :

الشكل القياسي لها :

[color=#CC0000][b]CREATE USER user
IDENTIFIED {BY password | EXTERNALLY}
[ DEFAULT TABLESPACE tablespace ]
[ TEMPORARY TABLESPACE tablespace ]
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace
]...]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK }]
[ PROFILE { profile | DEFAULT }][/b][/color]

مخيفة ، أليس كذلك ؟

بالطبع لا ، فهي بسيطة و سهلة و سنرى ذلك في سياق السلسة بإذن الله ..

لنبدأ بـ :

1- إنشاء Database User :

كما تحدثنا سابقاً فإنه توجد عدة طرق لإنشاء مستخدم منها Data Dictionary . و فيها يأخذ المستخدم صلاحية الدخول من أوركل أي يكون لديه password . لتعليمة الإنشاء المثال التالي:

create user Arabteam 
identified by arabteam_pass

إذا أردنا أن نتوسع أكثر فلنجعل لهذا المستخدم حصة على Users Tablespace و هو فضاء جدولي إفتراضي يتم إنشاءه عند تنصيب Oracle :

create user Arabteam 
identified by arabteam_pass
default tablespace users
quota 50m on users

في الحياة العملية لا يجب لمدير القاعدة أن يعرف كلمة السر الخاصة بمستخدم معين و هذا ما نشاهده في حالتنا فقد أسندنا كلمة السر التي نريد إلى المستخدم و هذا لا يصح . لذلك ما رأيكم لو أننا طلبنا من المستخدم أن يقوم بعملية تغيير قسرية لكلمة السر الخاصة به عند أول دخول ؟؟ بذلك " نصفي ذمتنا " (على الطريقة السورية ) ؟؟

create user Arabteam 
identified by arabteam_pass
default tablespace users
quota 50m on users
password Expire;

حتى الآن أظن أن الأمور بخير و لا يوجد شيء صعب على الفهم على ما أعتقد .....

ماذا لو أردنا عدم تفعيل الحساب مباشرة ؟ أي ننشء الحساب و لكن المستخدم لن يستطيع إستخدامه ؟

create user Arabteam 
identified by arabteam_pass
default tablespace users
quota 50m on users
password Expire
Account Lock;

2- إنشاء Operating System User :

و هنا يتم السماح للمستخدم إستخدام النظام بعد مصادقة نظام التشغيل . كلام غامض جداً جداً ؟؟؟؟؟؟

كلنا يعلم أننا يمكن إنشاء مستخدمين في نظام التشغيل الذي نعمل عليه سواء أكان Windows أو Linux أو أي نظام تشغيل آخر ، أفلا يمكننا إستخدام هذه الإمكانية في سماحية الدخول إلى أوراكل ؟ أي يكفي للمستخدم أن يقوم بستجيل الدخول إلى نظام التشغيل ثم يستدعي مثلاً SQL PLUS هكذا :

  c:\> sqlplus /

أي دون الحاجة إلى كتابة اسم المستخدم و كلمة المرور ؟؟؟ هذا ما ندعو بمصادقة نظام التشغيل ...

كيف نحقق ذلك ؟

create user Arabteam 
identified Externally

و ننشىء مستخدم اسمه ArabTeam على النظام ، و انتهت القصة .. سهلة أليس كذلك ؟؟

و لكن هناك شيء أساسي يجب ذكره : إن اسم مستخدم نظام التشغيل مرتبط بشكل أساسي بالبرامتر OS_AUTHENT_PREFIX ( البارامترات هي مجموعة من القيم التي تحدد طبيعة بعض العمليات الإدارية للقاعدة مثل اسماء data files و control files و النسخ الإحتياطي Backup ..... إلخ و هي مخزنة داخل ملف SPFILE أو PFILE الذين سيكون لهم نقاش طويل بإذن الله ) بحيث يجب أن تكون قيمته "" ... الآن كيف نستطيع فعل ذلك ؟؟؟ لنتبع الخطوات التالية :

1- سجل الدخول بالشكل التالي :

sys/pass as sysdba

2- نفذ التعليمة التالية :

alter system set OS_AUTHENT_PREFIX='' scope=spfile;

3- أغلق القاعدة بالشكل :

shutdown immediate

4- أعد تشغيل القاعدة بالشكل :

startup

و بذلك تم الأمر ..

و الآن لنسجل الدخول بالمستخدم الذي إنشأناه :

 

Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create user arabteam
2 identified by arabteam;

User created.

SQL> connect arabteam/arabteam
ERROR:
ORA-01045: user ARABTEAM lacks CREATE SESSION privilege; logon denied


Warning: You are no longer connected to ORACLE.
SQL>

ما الذي حدث ؟؟؟؟

تحدثنا في البداية بضرورة وجود الصلاحيات التي تحكم عمل المستخدم حتى في تسجيل دخوله . لذلك نحتاج إلى منح المستخدم Arabteam القدرة على تسجيل الدخول و ذلك بالطريقة :

 SQL> connect system/pass
Connected.
SQL> grant create session to arabteam;

Grant succeeded.

SQL> connect arabteam/arabteam_pass;
Connected.
SQL>

و سيكون لنا حديث طويل جداًعن السماحيات و ذلك في الجزء القادم إن شاء الله .

التعديلات على خصائص المستخدمين :

هل نستطيع إجراء التعديلات على المستخدمين الذين أنشأناهم ؟ هل نستطيع تغيير كلمة المرور أو Quota أو الفضاء الجدولي ؟؟؟

بالطبع نستطيع و ذلك عن طريق التعليمة :

ALTER USER user
[ DEFAULT TABLESPACE tablespace]
[ TEMPORARY TABLESPACE tablespace]
[ QUOTA {integer [K | M] | UNLIMITED } ON tablespace
[ QUOTA {integer [K | M] | UNLIMITED } ON tablespace ]
...]

ما رأيكم بتغيير كلمة المرور للسمتخدم الذي أنشأناه ؟؟

SQL> alter user arabteam
2 identified by pass;

User altered.

ملاحظة : يمكن حتى للمستخدم arabteam نفسه أن ينفذ هذه التعليمة لتغيير كلمة السر الخاصة به .

ما رأيكم بتغيير المساحة المخصصة للسمتخدم للكتابة على الفضاء الجدولي USERS ؟؟؟

SQL> alter user arabteam
2 quota 50m on users;

User altered

و بذلك أنتهى الجزء الخاص بإنشاء السمتخدمين .. سوف نتحدث في الجزء القادم بإذن الله عن السماحيات ...

ملاحظة هامة جداً :

لكي تستطيع تطبيق كل التعليمات التي ذكرناها يجب أن توجد سماحيات للقيام بها ، أي لا تحاول أن تنفذ التعليمات بواسطة Scott ، و إنما أنصح تسجيل الدخول بواسطة SYSTEM ..

تم تعديل بواسطه informat
2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

157 إجابة على هذا السؤال .

  • 0

أنا مبتدأ في أوراكل 10 ولديا هذا السؤال

أريد إنشاء تطبيق بإستعمال الدفلوبر وبجداول في أوراكل ولكني لا أعرف بما أبدأ هل بإنشاء مستخدم ثم إنشاء جداول خاصة بهذا المستخدم ثم أمتقل للدفلوبر إذا سمحتم أريد مثال بسيط

عن إنشاء تطبيق كتسيير مخزن بسيط

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

رزقك الله الجنة على هكذا دروس

ولكن هل لي بأن تكمل الدورة؟؟

أنا بحاجتها كثيراً

سأكون ممتنة لك جداً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

كنا نتمني ان تواصل هذه الدروس

وانا حسيت بي انو انت قبل ماتصير مشرف في قسم الاوركال كنت نشيط جدا ولكن الان انقلب الحال

درسك اكثر من رائع وانت فعلا متمكن جدا في هذا المجال

نرجو مواصلة المسير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لسه بادى اتابع معاك يام. حسام وبالامانه الشديده انا بدور على مواضيع معينه ودورت كتير فى جوجل الوحيد اللى شدنى لطريقه الشرح البسيط وفى نفس الوقت وضح امور كتير لم اعرفها كانت فى موضوعك هذا فجزاك الله خيرا واتمنى ان تستمر هناك من يحتاج لما تفعله وتوضحه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كيف نقرا ونفهم alert file 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .