نکاتی در امنیت oracle

اطلاعات صحیح در هر سازمانی بسیار مفید است و باعث موفقیت آن سازمان می گردد. اما اگر این اطلاعات دستکاری شود، بدون شک تأثیرات بدی در سازمان خواهد داشت. بانک اطلاعاتی اوراکل با محدود کردن دسترسی به داده ها می تواند از اطلاعات شما محافظت کند. اوراکل با استفاده از Granting، یا محدود کردن مجوزهای کاربران و فراهم کردن دستوراتی مانند Create User ،Create Role و Grant برای مدیران پایگاه داده می تواند دسترسی به اطلاعات را مدیریت کند. هر کاربر اوراکل دارای نام و رمز ورودی است و صاحب چند جدول، View یا اجزای دیگری است که به وجود می آورد. یک Oracle Role (یا نقش) در واقع شامل امتیازاتی است که کاربر می تواند برای دسترسی به اشیای بانک اطلاعاتی داشته باشد. می توانید امتیازی (Privilege) را به نقشی بدهید و سپس آن نقش را به یک کاربر اهدا کنید. در این مقاله قصد ندارم شما را با مباحث پیچیده امنیت در اوراکل آشنا کنم، هدف، آشنا کردن شما به صورت کاملاً عملی با پایه امنیت در اوراکل 10g است.

nullایجاد کاربر

هر سیستم اوراکل به صورت پیش فرض دارای چندین کاربر مانند SYSTEM و SYS است. کاربر SYS صاحب جداول داخلی بانک اطلاعاتی است (که وظیفه مدیریت بانک اطلاعاتی را به عهده دارند) و کاربر SYSTEM صاحب جداول دیگر مدیریتی است و برای این که بتوانیم کاربری را در یک بانک اطلاعاتی اضافه کنیم یا تغییراتی را در مجوزهای آن بدهیم، باید با این کاربر به سیستم وارد شویم. فرمت دستوری که می توانید با آن کاربر جدیدی را به سیستم اضافه کنید، به صورت زیر است:
در شکل 1 مراحل ساخت یک کاربر به نام Amin نشان داده شده است. در مرحله اول کاربر با استفاده از دستور Create User ساخته شده است. در مرحله دوم رمز کاربر تعویض شده است و در مرحله سوم برای این که به کاربر اجازه ورود بدهیم، یک Session جدید به نام او ساخته ایم.

or1نگاهی کوتاه به امنیت در اوراکل -آکانگاهی کوتاه به امنیت در اوراکل, سایت ,iran , ایرنا، ایران، خبرگزاری, خبرجنوب,روزنامه,حوادث ,شیراز اخبار ,شیراز ,امروز, فال هفته,خبرورزشی ,خبرکشورهای,عربی ,عربی کشور,حال ,اخبار ,حوادث ,خبر ,حادثه, khabar ,shiraz ,shiraz ,shiraz news, news, fars news, khabar e jonoob, irna, islamic republic news agency, khabar e varzeshi,khabar e arabi,international khabar,webdesign, nachricht, Nachricht, iranian nachricht,shiraz,khabar,dubai,emirates,news,

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

or2

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

or3

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

or4

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

or5

حال سؤال اینجاست که با وجود اختیاراتی که به Parham داده شده است، آیا او می تواند به جداول amin دسترسی کامل داشته باشد یا خیر؟ برای دسترسی کاربری به جدوال خود از دستور grant به نوعی دیگر استفاده می کنیم. مثلاً می توانیم با دستور زیر بگوییم که کاربر Parham می تواند از جدول emp کاربر amin استفاده کند:
اضافه بر نقش هایی که به صورت پیش فرض در اوراکل وجود دارد، می توانید نقش های دیگری نیز در اوراکل درست کنید. مثلاً دو دستور زیر دو نقش جدید به سیستم اضافه می کند.

or6

حال همان طور که در کدهای زیر می بینید، می توانید امتیازها را به نقش بدهید:

or7

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

or8

در این حالت سیستم از تمامی ارتباطات موفق و غیرموفق کاربران رکورد برداشت می نماید. برای مشاهده این اطلاعات می توانیم از جدول dba_aduit_session استفاده نماییم و با استفاده از فیلد returncode که در این جدول است، خطای مربوطه که معمولاً ORA_1017 و ORA_1005 است را استخراج نمود.
ORA_1005 وقتی است که کاربر بدون کلمه عبور می خواهد وارد شود و خطای ORA_1017 زمانی است که کاربر رمز اشتباه را وارد می نماید. برای غیر فعال کردن بررسی ارتباطات کاربران، می توانیم از دستور NOAUDIT session استفاده نماییم.
برای بررسی عمل کاربرها روی اشیایی مانند Database Link ،Tablespace ،User و Index که غالباً Drop ،Alter وCreate را اجرا می کنند، باید دستور AUDIT ROLE را اجرا کنیم و با جست وجوی زیر عملکرد کاربران را مشاهده کرد:

or9

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

or10

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

منبع : ماهنامه شبکه

 

مطالب مشابه