مقدمه

در حال حاضر حفظ اطلاعات از مهم‌ترین فاکتورها برای بقای یک سیستم به حساب می ‌آید. Microsoft SQL Server به دلیل اهمیتی که به امنیت روی بانک اطلاعاتی خود می ‌دهد، امروزه جزء محبوب ‌ترین نرم ‌افزارهای ساخت و مدیریت پایگاه داده در جهان است. SQL در واقع کوتاه شده‌ ی عبارت Structured Query Language می باشد که به در زبان فارسی به معنای “زبان پرس‌ و جوی ساختار یافته” است.
نرم افزار SQL Server نوعی بانک اطلاعاتی براساس دیتابیس ‌های رابطه ‌ای ((Relational Database است. این نرم افزار توسط شرکت Microsoft ارائه شده، و کار اصلی آن ذخیره، بازیابی و ارائه اطلاعات براساس درخواست سایر نرم ‌افزارها است. از سال 1987 زیان SQL جزء زبان های استاندارد بین‌المللی (ISO) قرار دارد.

مدیریت رویدادها در SQL Server چگونه انجام می ‌شود؟

دستورات نوشته شده به زبان SQL در نرم ‌افزار SQL Server انجام می ‌شوند. وظیفه این نرم ‌افزار برقراری ارتباط با فایل‌ های پایگاه داده و ارائه نتایج مورد نظر به کاربر است. در واقع، SQL Server را می ‌توان به عنوان یکی از سرویس ‌های ویندوز در نظر گرفت که می‌ تواند به تعداد زیادی از بانک ‌های اطلاعاتی متصل شود. این بانک‌ های داده از نوع رابطه ‌ای (Relational) هستند و داده‌ های موجود را به صورت جدول ذخیره می‌ کنند.
هر بانک اطلاعاتی حاوی چندین جدول است. کاربران معمولا قصد انجام عملیات‌ مختلفی مانند درج (INSERT)، انتخاب (SELECT)، به ‌روزرسانی (UPDATE) و حذف (DELETE) سطر جدول‌ های بانک‌ های اطلاعاتی را دارند. به منظور انجام این دسته از عملیات‌، لازم است که ارتباط کاربر با سرویس SQL Server برقرار شود. این برقراری ارتباط با پایگاه داده است که مدیریت آن را ممکن می ‌سازد. یکی از روش ‌های محبوب برقراری ارتباط، استفاده از نرم‌ افزار SQL Server Management Studio بوده که کوتاه شده نام آن عبارت SSMS است.

مدیریت و امنیت روی بانک اطلاعاتی؛ SSMS چیست؟

SQL Server Management Studio (SSMS) یک نرم‌ افزار تحت ویندوز است و نقش واسط را در میان کاربر و SQL Server دارد. SSMS قادر به درک و تفسیر گزاره‌ های زبان SQL است و به همین جهت کاربر می ‌تواند دستورات مورد نظر خود را در محیط SSMS و به زبان SQL بنویسد و سپس این دستورات را به دیتابیس SQL Server ارسال کند. نحوه نوشتن این دستورات نیز بر امنیت روی بانک اطلاعاتی تاثیر دارد.
سرویس SQL Server دستورات را دریافت کرده و تغییرات مورد نظر را اعمال می ‌کند و سپس آن را در قسمت نتایج نرم‌افزار SQL Server Management Studio نشان خواهد داد. SSMS برای اولین بار به همراه Microsoft SQL Server 2005 عرضه شد و امروزه از آن در تنظیم و مدیریت بانک اطلاعاتی SQL Server استفاده می ‌شود.

مدیریت و امنیت روی بانک اطلاعاتی؛ چگونه با SSMS کار کنیم؟

پس از نصب و اجرای SSMS پنجره ‌ای برای اتصال به سرور مورد نظر باز می ‌شود. در اینجا لازم است که کاربر یک سرور را انتخاب کند و به آن متصل کند. کاربر سرور مورد نظر خود را وارد کرده و با زدن دکمه Connect اتصال برقرار خواهد شد. بدون برقراری اتصال میان سرور و نرم‌ افزار عملا نمی ‌توان کاری انجام داد.
پس از اتصال به سرور مورد نظر و باز شدن داشبورد اصلی، می‌ توانیم پنجره Object Explorer را در سمت چپ محیط نرم ‌افزار مشاهده کنیم. این قسمت شامل فایل‌ های زیادی است که البته ما بیشتر با فایل دیتابیس (Databases) سر و کار داریم.
کاربر می‌ تواند پوشه دیتابیس را بسط دهد و به یکی از بانک ‌های اطلاعاتی موجود در آن دسترسی یابد. در این قسمت کاربر می ‌تواند وارد پوشه‌ ی Tables شده و جداول پایگاه داده را بررسی کند. هر یک از این جداول به عنوان یک Object در نظر گرفته می ‌شوند که می ‌توانند جزئی از Objectهای پیچیده ‌تر نیز باشند.
هر یک از این جداول دارای پوشه ‌ای مربوط به ستون ‌ها (Columns) هستند. برای مشاهده جزئیات بیشتر، می ‌توان روی هر یک از فایل ‌های ستون جدول دوبار ‌کلیک کرد. با انجام این کار اطلاعات مربوط به آن ستون قابل مشاهده است. این اطلاعات می ‌تواند ضعف یا قوت امنیت روی بانک اطلاعاتی را نشان دهد.
با کلیک راست کردن بر روی آیتم‌ های موجود در دیتابیس گزینه ‌ای تحت عنوان Select Top 1000 Rows را مشاهده می ‌کنیم. با انتخاب این گزینه یک اسکریپت SQL با گزاره SELECT ایجاد می ‌شود. این اسکریپت، به وسیله گزاره SELECT هزار سطر اول را از جدول مربوطه انتخاب کرده و در قسمت نتایج نمایش می ‌دهد.

معرفی قسمت ‌های مختلف نرم افزار پس از اجرای گزاره Select

پس از اجرای گزاره Select اجزا اصلی رابط کاربری نرم‌افزارSQL Server Management Studio قابل مشاهده است. همانطور که گفته شد Object Explorer در سمت چپ قرار دیده می ‌شود؛ پنجره مربوط به کوئری در قسمت بالا و راست قرار دارد.
در این پنجره می ‌توان ویرایش و ارسال دستورات به موتور پایگاه داده را انجام داد، بیشتر کارهایی که کاربر می‌ خواهد انجام دهد در پنجره کوئری قابل اجرا است.
در بخش پایینی محیط نرم‌ افزار نتایج دستورات در پنجره‌ ای به نام Results نمایش داده می‌ شود. در سمت پایین و راست Object Explorer علاوه بر پنجره Results قسمت دیگری به نام (Messages) نیز وجود دارد. پیام‌ های دریافتی از سرور و پایگاه داده در این قسمت نمایش داده می ‌شوند.

بررسی و ارتقا امنیت روی بانک اطلاعاتی SQL Server

بانک‌ های اطلاعاتی مانند SQL server حاوی حجم بسیار زیادی از داده‌ های مهم هستند. این داده‌ ها اگر به دست افراد غیر مسئول بیفتند، ممکن است برای شرکت یا افراد بسیاری زیان ‌بار باشد. به همین دلیل سرور سیستم امنیتی را در نظر گرفته که به مدیریت اصلی این امکان را می ‌دهد که بتواند سرویس دهنده را در سطوح مختلفی قفل کند و دسترسی ‌های محدودی به جداول موجود در آن ایجاد کند.
پیش از پرداختن به اصول ایمنی SQL Server لازم است با برخی از مفاهیم امنیت روی بانک اطلاعاتی آشنا شویم:
۱) Login ID: عبارتی است که هر کاربر جهت اعتبارسنجی به SQL Server ارائه می ‌دهد.
۲) Password: یک عبارت حرفی عددی با حداقل 6 کارکتر است که امکان دسترسی به هر آیدی را صادر می ‌کند.
۳) ID کاربر: موارد بالا شما را به سرویس دهنده متصل می‌ کنند، اما ID کاربری شما را به درب بانک اطلاعاتی مورد نظرتان راهنمایی می ‌کند.
پس از وارد کردن اطلاعات بالا، سرور صحت موارد را بررسی کرده و در صورت درست بودن، اجازه‌ ی دسترسی به بانک اطلاعاتی را صادر می ‌کند.
۴) نقش ها: مدیر اصلی می ‌تواند برای هر یک از کاربران سطوحی از دسترسی را صادر کند و به این ترتیب نقش ‌های مختلفی در بانک اطلاعاتی به وجود خواهند آمد.
5) گروه های ویندوزNT: بالاترین دسترسی را در زمینه ویرایش و نگاشت کدهای SQL دارند

راهکارهای افزایش امنیت روی بانک اطلاعاتی SQL Server

همانطور که گفته شد، SQL Server یک سیستم امنیتی منحصر به فرد را برای کاربران طراحی کرده است که احتمال وقوع هرگونه مشکل امنیتی را به حداقل می ‌رساند. با این وجود یک سری تکنیک‌ ها وجود دارد که می ‌توان به وسیله آن‌ ها احتمال بروز خطرات امنیتی را به کمترین حد ممکن رساند:
سرور خود را ایزوله کنید: سرور SQL خود را بر روی یک Network محدود و با قابلیت دسترسی محدود قرار دهید.
امنیت روی بانک اطلاعاتی: نرم افزار مدیریتی خود را بهینه کنید: شما نیازی به استفاده از تمامی قابلیت‌ های سرور خود ندارید، بنابراین لازم نیست همه ‌ی آن‌ ها را فعال کنید. ضمنا از استفاده موازی از چند نرم ‌افزار موازی بپرهیزید.
به روز باشید: ابزارهای SQL Server و سایر ابزارهای مورد نیاز خود را همواره به روز رسانی کنید. در آپدیت ‌های جدید معمولا همیشه به بحث امنیت روی بانک بانک اطلاعاتی پرداخته می‌ شود.

ورود به عنوان ادمین را محدود کنید: ورود به SQL Server در ویندوز به طور معمول به عنوان ادمین انجام می‌ شود. ورود افراد مختلف را بر اساس IP آن‌ ها دسته ‌بندی کرده و ارتباطات را محدود کنید.
از آنتی ویروس ‌ها استفاده کنید: به منظور جلوگیری از وقوع حمله ‌های SQL می ‌توانید از Anti Malware یا آنتی ویروس ‌های مخصوص برای سرور خود استفاده کنید.
ورود‌ به سرور را بررسی کنید: برخی افرادی که قصد ورود به سرور شما را دارند ممکن است بخواهند به وسیله آزمون و خطا امنیت روی بانک اطلاعاتی شما را بسنجند. بهتر است به ازای هر چند بار ورود ناموفق، آی پی شخص وارد شونده را برای همیشه Ban کنید.
یک پسورد قوی انتخاب کنید: درست است که پسورد دارای 6 کاراکتر نیز مورد تایید SQL Server است، اما بهتر است یک پسورد قوی را به ‌خصوص برای اکانت ادمین و روت خود انتخاب کنید.
هر چند مدت یک بار از سرور Backup بگیرید: این کار تاثیری بر امنیت روی بانک اطلاعاتی ندارد اما در صورت از بین رفتن اطلاعات موجود در آن به هر دلیلی، می ‌توانید با استفاده از Back up‌هایی که دارید، اطلاعات را بازیابی کنید. ضمنا این Back Upها حاوی همه‌ی اطلاعات موجود در بانک اطلاعاتی هستند، بنابراین باید به خوبی از آن ‌ها محافظت شده و دسترسی به آن‌ ها محدود گردد.
مراقب SQL injection‌ها باشید: در صورتی که فردی قصد مختل کردن سرور شما را داشته باشد می ‌تواند یک SQL injection به آن ارسال کند. شما می ‌توانید با استفاده از برخی ابزار‌ها از این نفوذ جلوگیری کنید. همچنین اسکن سیستم و لاگ‌ ها هر چند وقت یک بار می‌ تواند کمک کننده باشد. می ‌توانید برای اطلاع بیشتر در خصوص SQL injectionها اینجا کلیک کنید.

امنیت روی بانک اطلاعاتی: مانیتورینگ را فراموش نکنید

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