برسی امنیت SQL Server Express
SQL Server ویژگیهای زیادی دارد که ایجاد برنامههایی با پایگاه داده امن را پشتیبانی میکند. صرفنظر از نسخه SQL Server، ملاحظات امنیتی معمول مانندسرقت دادهها و جامعیت دادهها در این نرمافزار در نظر گرفته میشود. درصورتیکه دادهها محافظت نگردند، ممکن است به علت دستکاری و تغییرات غیرعمدی یا خرابکارانه پاک شوند یا تغییر یابند و ارزش خود را از دست بدهند. بعلاوه، اغلب باید مسائلی مانند ذخیرهسازی صحیح اطلاعات محرمانه نیز مورد توجه قرار گیرد. هر نسخه از SQL Server مانند هر نسخه از ویندوز، ویژگیهای امنیتی متفاوتی نسبت به نسخههای پیشین خود دارد و نسخههای جدیدتر، عملکرد بهتری نسبت به نسخههای پیشین دارند.
این مهم است که درک کنیم که ویژگیهای امنیتی به تنهایی قادر به تضمین یک برنامه پایگاه داده امن نیستند. هر برنامه پایگاه داده از جهت ملزومات، محیط اجرا، مدل اجرا، موقعیت فیزیکی و تعداد کاربران منحصر به فرد است. ممکن است برخی برنامههای محلی نیازمند امنیت حداقلی باشند، درحالیکه سایر برنامههای محلی و یا برنامههایی که بر روی اینترنت به کار گرفته میشوند ممکن است به معیارهای امنیتی قویتر و مانیتورینگ و ارزیابی دائم نیاز داشته باشند. ملزومات امنیتی یک برنامه پایگاه داده SQL Server باید در زمان طراحی در نظر گرفته شود نه پس از آن. ارزیابی تهدیدات در ابتدای چرخه توسعه برنامه این فرصت را در اختیار شما قرار میدهد که خسارت بالقوه را در هرجایی که یک آسیبپذیری شناسایی میشود، کاهش دهید.
حتی اگر طراحی اولیه یک برنامه بیعیب و نقص باشد، باز هم تهدیدات جدید ممکن است در زمان بهرهبرداری از سیستم رونمایی کنند. با ایجاد خطوط دفاعی مختلف برای پایگاه داده، میتوانید خسارت وارد شده توسط یک نشت امنیتی را به حداقل برسانید. نخستین خط دفاعی، کاهش سطح حمله با اعطای مجوزهای حداقلی و رعایت اصل حداقل دسترسی است. در قسمت قبلی مجموعه مقالات امنیت SQL Server، به نمای کلی امنیت SQL Server، انواع سناریوهای احراز هویت در SQL Server، تفویض اختیار و مجوزها در SQL Server، رمزگذاری دادهها و امنیت یکپارچه CLR، سناریوهای امنیت برنامه کاربردی، مدیریت مجوزها با استفاده از روالهای ذخیره شده، نوشتن SQL پویای امن، امضای روالهای ذخیره شده و جعل هویت در SQL Server، تخصیص مجوزهای سطح رکورد و ایجاد نقشهای برنامه کاربردی و فعالسازی دسترسی بین پایگاه دادهها پرداختیم. قسمت آخر از این مجموعه مقالات به طور مختصر به امنیت SQL Server Expressمیپردازد.
2- امنیت SQL Server Express
نسخه Microsoft SQL Server Express Edition (SQL Server Express)، مبتنی بر Microsoft SQL Server است و اغلب ویژگیهای این موتور پایگاه داده را پشتیبانی میکند. اما SQL Server Express طوری طراحی شده است که در آن، کلیه ویژگیهای غیرضروری و همچنین ارتباط شبکه به طور پیشفرض غیرفعال هستند. این خصوصیت باعث میشود که سطح در دسترس برای حملات توسط کاربران خرابکار به طور قابل ملاحظهای کاهش یابد.
SQL Server Express معمولاً تحت عنوان یک نمونه نام گذاری شده (named instance) نصب میگردد. نام پیشفرض این نمونه SQlExpress است. یک نمونه نام گذاری شده (named instance) توسط نام شبکه کامپیوتر میزبان آن نمونه به اضافه نام نمونهای که شما در طول نصب مشخص میکنید، شناسایی میشود.
2-1- دسترسی شبکه
در SQL Server Express به دلایل امنیتی پروتکلهای شبکه به طور پیش فرض غیرفعال هستند. این خصوصیت از حملات کاربران بیرونی که ممکن است کامپیوتر میزبان نمونه SQL Server Express را مورد سوء استفاده و هدف حملات خود قرار دهند، جلوگیری میکند. شما باید به طور صریح ارتباط شبکه را فعال کرده و سرویس SQL Server Browser را نیز فعال نمایید تا بتوانید از یک کامپیوتر دیگر به یک نمونه SQL Server Express متصل شوید. اما هنگامیکه ارتباط شبکه فعال میگردد، یک نمونه SQL Server Express دارای الزامات امنیتی مشابه با سایر نسخههای SQL Server است.
2-2- نمونههای کاربری
یک نمونه کاربری عبارت است از یک نمونه مجزای موتور پایگاه داده SQL Server Express که توسط یک نمونه والد SQL Server Express تولید شده است. هدف اولیه و اساسی یک نمونه کاربری این است که به کاربرانی که ویندوز را تحت یک حساب کاربری با حداقل دسترسی اجرا میکنند، در سیستم محلی خود کاربر مجوز دسترسی مدیر سیستم (sysadmin) را بر روی نمونه SQL Server Express بدهد. به عبارت دیگر میتوان گفت که نمونههای کاربری مربوط به کاربرانی که بر روی سیستمهای خود مدیر سیستم هستند، نمیباشد. یک نمونه کاربری از یک نمونه اولیه SQL Server یا SQL Server Express و از طرف یک کاربر ایجاد میشود. این نمونه، یک پردازه کاربری را تحت بستر امنیتی ویندوز کاربر اجرا میکند و نه به عنوان یک سرویس. در این حالت لاگینهای SQL Server غیرمجاز هستند و فقط لاگینهای ویندوز پشتیبانی میشوند. این مسأله از ایجاد تغییراتی خارج از مجوزهای کاربر توسط نرم افزاری که بر روی یک نمونه کاربری اجرا میشود جلوگیری میکند. یک نمونه کاربری همچنین به عنوان یک نمونه فرزند یا نمونه مشتری نیز شناخته میشود و برخی اوقات نیز با استفاده از عبارت اختصاری RANU (run as normal user) به آن اشاره میگردد.
هر نمونه کاربری از نمونه والد خود و نیز از سایر نمونههای کاربری اجرا شده بر روی همان سیستم، کاملاً ایزوله است. پایگاههای داده نصب شده بر روی نمونههای کاربری فقط در مود تک کاربره (single-user) باز میشوند و در نتیجه چندین کاربر به طور همزمان نمیتوانند به آنها متصل شوند. پرس و جوهای توزیع شده و نیز اتصال از راه دور برای نمونههای کاربری غیرفعال است. کاربران پس از اتصال به یک نمونه کاربری، دارای هیچ حق دسترسی ویژهای بر روی نمونه SQL Server Express والد نیستند.