Hicham Al Sayed ahmed

اهلا و سهلا بكم في منتدى تقنيات الحاسوب 2013

منتدى و عالم تقنيات الحاسوب و البرمجة وانظمة التشغيل و الصيانة 2013

تؤمن لكل من يحب ان يتعلم البرمجة و كل من يدرس في هذا الاختصاص برامج و مواضيع و افكار جديدة و كيفية العمل و الكثير و الكثير و ايضا تتيح لاي شخص ان ينضم لهذا المنتدى و خاصة طلاب تقنيات الحاسوب و انظمة التشغيل و الصيانة المادية و البرمجية
تعلم الفجوال بيسك - الدلفي - السي ++ - الباسكال و الكثير و الكثير

اطرح سؤالك على فريق العمل في الفيسبوك

تابعنا على الفيسبوك

مشاركة الموضوع عبر الفيسبوك

Log in

I forgot my password

Top posting users this week

Who is online?

In total there is 1 user online :: 0 Registered, 0 Hidden and 1 Guest

None


Most users ever online was 85 on Tue Nov 05, 2013 5:00 am

تابعنا على الفيسبوك


إدارة قواعد البيانات( عملي)

Share
avatar
عفريت السويداء
عضو مميز
عضو مميز

نقاط : 1157

default إدارة قواعد البيانات( عملي)

Post by عفريت السويداء on Wed Dec 28, 2011 6:01 am

ما هي الحاجة إلى وجود مستخدمين ؟
تكمن
الحاجة في حتمية وجود خصوصية للبيانات بحيث يستطيع كل شخص أن يحتفظ
ببيناته و قدرته على تعديلها و منح الحق لغيره بالإطلاع عليها أو إجراء
العمليات المختلفة عليها .
عندما يريد أحد التعامل مع أوراكل يجب أن
تكون له سماحية الدخول إلى النظام و هذه السماحية تؤخذ بالطرق : :
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 :
الشكل
القياسي لها :

كود
[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 }]





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

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

لنبدأ بـ :
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;



avatar
عفريت السويداء
عضو مميز
عضو مميز

نقاط : 1157

default Re: إدارة قواعد البيانات( عملي)

Post by عفريت السويداء on Wed Dec 28, 2011 6:05 am



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 ..
avatar
al-Master

نقاط : 123

default Re: إدارة قواعد البيانات( عملي)

Post by al-Master on Fri Jan 06, 2012 6:35 pm

شكرا على هذا الموضوووع الجميل monkey
avatar
al-Master

نقاط : 123

default Re: إدارة قواعد البيانات( عملي)

Post by al-Master on Fri Jan 06, 2012 6:36 pm

شكرا على هذا الموضوووع الجميل

    Current date/time is Wed Nov 21, 2018 1:13 am