[B]ايجاد كاربر[/B]

هر سيستم اوراكل به صورت پيش*فرض داراي چندين كاربر مانند SYSTEM و SYS است. كاربر SYS صاحب جداول داخلي بانك اطلاعاتي است (كه وظيفه مديريت بانك اطلاعاتي را به عهده دارند) و كاربر SYSTEM صاحب جداول ديگر مديريتي است و براي اين*كه بتوانيم كاربري را در يك بانك اطلاعاتي اضافه كنيم يا تغييراتي را در مجوزهاي آن بدهيم، بايد با اين كاربر به سيستم وارد شويم. فرمت دستوري كه مي*توانيد با آن كاربر جديدي را به سيستم اضافه كنيد، به صورت زير است:

در شكل 1 مراحل ساخت يك كاربر به نام Amin نشان داده شده است. در مرحله اول كاربر با استفاده از دستور Create User ساخته شده است. در مرحله دوم رمز كاربر تعويض شده است و در مرحله سوم براي اين*كه به كاربر اجازه ورود بدهيم، يك Session جديد به نام او ساخته*ايم.





[B]مديريت رمزها[/B]

كاربر بانك اطلاعاتي مي*تواند پسورد خود را با استفاده از دستور password عوض كند، ولي در اوراكل مي*توانيم رمزهاي كاربران را به صورت پيشرفته مديريت نماييم. مثلاً مي*توانيم رمز ورودي را منقضي كنيم DBA و... مي*تواند پروفايل*هاي خاصي را براي مديريت امنيت تعريف نمايد و وقتي كاربر را ايجاد مي*كند، آن پروفايل را به آن اختصاص دهد.




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

در شكل 2 طريقه ايجاد يك پروفايل را مشاهده مي*كنيد كه تعداد اشتباه در ورود روز را «2» تعيين كرده است. همان*طور كه در اين كدها مشخص شده است، اين پروفايل به كاربر amin داده مي*شود و حساب او پس از دو اشتباه قفل مي گردد. البته DBA مي*تواند با دستور زير Account او را مجدداً باز كند.


[B]ايجاد نقش براي كاربر[/B]

در مراحل قبل كاربر amin را ساختيم و رمز جديدي به آن داديم. حال او داراي حساب است، ولي نمي*تواند كار خاصي انجام دهد؛ چراكه هيچ نقش و مجوزي جز Create Session به او Grant نشده است. مهم*ترين نقش*هاي اوراكل براي كاربران در جدول زير مشاهده مي*شود:


حال فرض كنيد كه كاربر amin صاحب جدول emp و نقش مدير سيستم را عهده دار است. حال مطابق شكل 3 دو كاربر به اسامي zbehro و Parham مي*سازيم و به هر دوي آن ها اجازه ورود به سيستم را مي*دهيم و به Parham اختيارات ديگري نيز مي*دهيم.




حال سؤال اينجاست كه با وجود اختياراتي كه به Parham داده شده است، آيا او مي*تواند به جداول amin دسترسي كامل داشته باشد يا خير؟ براي دسترسي كاربري به جدوال خود از دستور grant به نوعي ديگر استفاده مي*كنيم. مثلاً مي*توانيم با دستور زير بگوييم كه كاربر Parham مي*تواند از جدول emp كاربر amin استفاده كند:


اضافه بر نقش*هايي كه به صورت پيش*فرض در اوراكل وجود دارد، مي*توانيد نقش*هاي ديگري نيز در اوراكل درست كنيد. مثلاً دو دستور زير دو نقش جديد به سيستم اضافه مي*كند.


حال همان*طور كه در كدهاي زير مي*بينيد، مي*توانيد امتيازها را به نقش بدهيد:


[B]بررسي عملكرد كاربران*[/B]

در اوراكل مي*توانيم به راحتي تمامي اعمالي كه اتفاق افتاده است را بررسي كنيم. تمامي اين اعمال به صورت ركوردهايي در بانك اطلاعاتي ثبت مي*شود. در اوراكل امكان بررسي يا Audit سه چيز وجود دارد: برقراري ارتباط با سيستم، دسترسي به اشياي بانك اطلاعاتي، و اعمالي كه روي بانك اطلاعاتي انجام مي*گيرد. براي فعال*سازي اين گزينه، بايد مقدار AUDIT_TRAIL در فايل Init.ora ،DB يا OS باشد.
براي اين*كه ارتباطات كاربران به بانك اطلاعاتي را كنترل كنيم، مي*توانيم از دستورات زير استفاده نماييم:


در اين حالت سيستم از تمامي ارتباطات موفق و غيرموفق كاربران ركورد برداشت مي*نمايد. براي مشاهده اين اطلاعات مي*توانيم از جدول dba_aduit_session استفاده نماييم و با استفاده از فيلد returncode كه در اين جدول است، خطاي مربوطه كه معمولاً ORA_1017 و ORA_1005 است را استخراج نمود.

ORA_1005 وقتي است كه كاربر بدون كلمه عبور مي*خواهد وارد شود و خطاي ORA_1017 زماني است كه كاربر رمز اشتباه را وارد مي*نمايد. براي غير فعال كردن بررسي ارتباطات كاربران، مي*توانيم از دستور NOAUDIT session استفاده نماييم.

براي بررسي عمل كاربرها روي اشيايي مانند Database Link ،Tablespace ،User و Index كه غالباً Drop ،Alter وCreate را اجرا مي*كنند، بايد دستور AUDIT ROLE را اجرا كنيم و با جست*وجوي زير عملكرد كاربران را مشاهده كرد:


اضافه بر كنترل دسترسي بر اشيا، مي*توانيم اعمال دستكاري داده ها بر اشيا را نيز بررسي نماييم. مثلاً اعمالي مانند Insert ،Select و Delete. براي بررسي اين قسمت مانند دستورات قبلي از دستور Audit استفاده مي*كنيم، ولي عبارت اضافي By Session يا By Access نيز به اين دستور اضافه مي*شود. اين دستور به سيستم مي*گويد: براي هر دسترسي يك ركورد جمع*آوري كند. مثلاً براي بررسي اعمالي كه روي جدول emp انجام مي*شود، بايد دستورات روبه*رو را نوشت:


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