PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : نگاهي كوتاه به امنيت در اوراكل



Borna66
05-16-2011, 11:19 PM
ايجاد كاربر

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

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


http://pnu-club.com/imported/mising.jpg
http://pnu-club.com/imported/mising.jpg
شکل 1

مديريت رمزها

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


http://pnu-club.com/imported/mising.jpg
شکل 2

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

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


http://pnu-club.com/imported/mising.jpg

ايجاد نقش براي كاربر

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


http://pnu-club.com/imported/mising.jpg

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


http://pnu-club.com/imported/mising.jpg
شکل 3

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


http://pnu-club.com/imported/mising.jpg

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


http://pnu-club.com/imported/mising.jpg

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


http://pnu-club.com/imported/mising.jpg

بررسي عملكرد كاربران‌

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


http://pnu-club.com/imported/mising.jpg

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

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

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


http://pnu-club.com/imported/mising.jpg

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


http://pnu-club.com/imported/mising.jpg

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