در قسمت اول از مقالهی بررسی امنیت دادهها در SQL Server 2016، علاوه بر معرفی این سیستم مدیریت دیتابیس و بررسی ویژگیهای امنیتی آن، به لایهی حفاظت از برنامه کاربردی پرداخته شد و در بخش دوم از این مجموعه مقالات، لایهی حفاظت از شبکهی داده مورد بررسی قرار گرفت. در این مقاله که بخش سوم از این مجموعه میباشد به لایهی حفاظت از دیتابیس پرداخته میشود.
حفاظت از دیتابیس ها در SQL Server 2016
حفاظت از دیتابیس شدیداً به تفکیک Roleها و سطوح دسترسی یا Permission که به این Roleها مربوط هستن، وابسته است. Roleها و سطوح دسترسی نه تنها تعیین میکنند که چه دادهای قابل دسترسی است، بلکه تعیین میکنند که یک کاربر اجازهی انجام چه اعمالی را در ارتباط با دادهها دارد و اینکه آیا یک کاربر میتواند دادههای حساس رمزگذاری نشده را مشاهده کند و یا روی Schemaی دیتابیس اصلاحاتی را انجام دهد یا خیر. مدیریت Role ایمن، بر روی فراهم کردن حداقل سطح اجازهی موردنیاز برای اینکه یک Role بتواند Taskهایش را انجام دهد، تمرکز دارد. با قرار گرفتن در یک نقش دیگر (Impersonation)، محافظت بیشتر ممکن میگردد تا به صورت موقت و On-Demand، اجازهی دسترسی سطح بالا داده شود.
به عنوان مثال، عمدهفروشی را در نظر بگیرید که محصولات را به صورت کلی، برای خردهفروشان در منطقه فراهم مینماید. در مورد دسترسی به دادههای عملیاتی، کارمندان نیازهای متفاوتی دارند. برای مثال مدیران حساب کاربری دادههای تماس مشتریان را حفظ کرده، به پرداختها رسیدگی نموده و سفارشها را Log مینمایند؛ درحالی که افراد در بخش اجرا، سفارشات را بررسی نموده، وضعیت را بروزرسانی کرده و موجودی کالاها را مدیریت مینمایند. هر دو بخش در عملیاتهای خود نیاز به گزارشات دورهای دارند. مشتریان برای مشاهدهی فاکتورها، وضعیت سفارش و پیشینهی سفارش نیاز به دسترسی دارند. تعامل آنها با دادهها به طور گستردهای از طریق تعیین Role به عنوان اعضای گروههای Active Directory مدیریت میگردد (برای مثال «مشتریان»، «مدیران حساب کاربری» و «تیم تحویل» که به نقشهای مشخصی در SQL Server، Map شدهاند).
در این سناریو، کاربران Client به جداول دسترسی ندارند و همچنین توانایی اجرای Queryهای سفارشی را ندارند. در عوض نمایهها یا فرایندهای ذخیره شده برای Roleها قابل دسترسی هستند و در نتیجه اطمینان حاصل میگردد که تنها عملیاتهایی در دسترس باشند که برای استفاده در یک Role خاص مد نظر قرار دارند. برای مثال کاربران تیم تحویل میتوانند نمایهای را که تمام سفارشات باز را بر اساس تاریخ مقصد نمایش میدهد، جستجو نمایند، درحالیکه مشتریان میتوانند به فرایندهای ذخیره شده که آخرین اطلاعات سفارش را باز میگردانند، دسترسی داشته باشند.
خدمات IT برای تعامل با دادههای تولیدی نیز دارای Role هستند. DBAها سیستم را به طور کلی مانیتور میکنند، اما نیاز به قابلیت ایجاد یا مشاهدهی سفارشات خاص ندارند. یک DBA میتواند به مجموعهای از ماژولها (کاربردها، فرایندها، صفها یا Queueها و Triggerها) دسترسی داشته باشد که میتوانند در نقش یک «مشتری» یا «مدیر حساب» قرار بگیرند تا عیبیابی در مورد عملکرد انجام پذیرد. قرار گرفتن در نقشی دیگر در یک ماژول توانایی Elevation را در ماژول ایجاد میکند. این ماژولها برای دادهها یا فرایندها، دسترسی موقتی فراهم مینمایند اما نیازی به قابلیتهای پرسوجوهای کاملاً Ad-Hoc ندارند. بهعلاوه، میتوان از طریق Just Enough Administration یا JEA مربوط به اکتیودایرکتوری ویندوز از افزایش سطح دسترسی موقت استفاده کرد تا علاوه بر ویندوز، سطوح دسترسی در SQL Server نیز ارتقاء یابد. در سطح حفاظت Database-Host بیشتر در مورد Active Directory و JEA بحث میگردد. فرایندهای ذخیره شده با DBA مشخص، توانایی قرار گرفتن در یک Role را به طور موقت فراهم مینمایند تا در مشخص کردن علل کاهش سطح عملکرد، مؤثر واقع شود. با Always Encrypted یا CLE، دادههای حساس مانند تماس مشتری یا اطلاعات پرداخت رمزگذاری میشود و در نتیجه امکان عیبیابی دقیق بدون در خطر انداختن امنیت فراهم میگردد.
مدیران ممیزی، مجموعهای از ممیزیها را برای علامتگذاری (Flagging) فعالیتهای غیرعادی حفظ مینمایند. مدیر ممیزی به قابلیت ساخت و مدیریت ممیزیها و Triggerها نیاز دارد. فردی که ممیزی را انجام میدهد Triggerهایی را ایجاد میکند که به تیم در مورد مسائلی به دلایل مختلف هشدار میدهد. دلایلی مانند مجموع سفارشاتی که از محدودهی خاصی فراتر میرود، سفارشات باز راکد (Stagnated) و یا علائمی از فعالیتهای DBA مخرب.
حفاظت از دیتابیس به ویژگیها و شیوههایی از انواع متفاوت ویژگیها همچون کنترل دسترسی، رمزگذاری داده و مانیتورینگ آیندهنگرانه تکیه میکند. تفکیک Roleها و مدیریت حسابشدهی سطوح دسترسی در محافظت از داده در مقابل مدیران متخلف و در عینحال فراهم آوردن عملکرد مناسب برای کاربران، امری کلیدی است. ارائه دادن حداقل اجازهها به کاربران، در مقابل حمله از آنها محافظت میکند. قرار گرفتن در نقشی دیگر، دسترسی موقت و نظارتشدهای را برای مدیران فراهم مینماید تا در زمان نیاز، بدون اعطا کردن اجازههای Full-Time، عملیاتها را عیبیابی کنند. فرایندهای ذخیره شده زمانی که به عنوان نقاط ورودی برای اقدامات از پیش تعیین شده اعمال شوند، به توسعهدهندگان توانایی فراهم آوردن عملکردی هدفدار را بدون به خطر انداختن امنیت میدهند. ممیزی به مدیران کمک میکند که بتوانند به صورت زودهنگام، ریسکهای امنیتی بالقوه را تشخیص دهند. این ویژگیها و روشها در تعامل با یکدیگر به بالا بردن استاندارد در امنیت دیتابیس و رساندن آن به سطحی تازه کمک میکنند.
ـــــــــــــــــــــــــــــــــــــــــــــ
بررسی امنیت دادهها در SQL Server 2016 – قسمت اول
بررسی امنیت دادهها در SQL Server 2016 – قسمت دوم
بررسی امنیت دادهها در SQL Server 2016 – قسمت سوم
بررسی امنیت دادهها در SQL Server 2016 – قسمت چهارم (پایانی)