بررسی اجمالی احراز هویت یا authentication در sql server
درس حاضر از دوره آموزشی SQL Server، با تمرکز بر مبحث Authentication در حوزه امنیت، به بررسی تخصصی روشهای احراز هویت در این سیستم مدیریت پایگاه داده میپردازد. در این محتوا، دو مکانیزم اصلی Windows Authentication و SQL Server Authentication تشریح میشوند؛ اولی با بهرهگیری از اعتبارنامههای ویندوز، امنیت بالاتری را برای کاربران درون دامنه فراهم میکند و دومی با استفاده از نام کاربری و رمز عبور مستقل، انعطافپذیری بیشتری برای دسترسیهای خارج از دامنه ارائه میدهد. همچنین، قابلیت Mixed Mode که ترکیبی از هر دو روش است، معرفی شده و نحوه پیکربندی آنها در کنار بهترین شیوهها برای افزایش امنیت و جلوگیری از نفوذ بررسی میشود. هدف این درس، توانمندسازی مخاطبان برای انتخاب و پیادهسازی روش احراز هویت مناسب با نیازهای سازمانی و اطمینان از حفاظت دادهها در SQL Server است؛ ویدئوی همراه این درس، شما را گامبهگام در تسلط بر این مفاهیم یاری خواهد کرد.
در این فصل میخوایم راجب به احراز هویت یا Authentication در اس کیو ال 2016 صحبت کنیم. احراز هویت راه دیگه ای برای گفتن این هست که چطور شما login رو انجام بدین و اینکه چه نوع حسابی و با چه نوع سطح دسترسی ای دارین؟ اس کیو ال سرور دارای 2 نوع حساب کاربری متفاوت داره. نوع اول، Windows Loginsهست و دیگری، SQL Server Logins.
با Windows Login، username و passwordتوسط Windows operating systemیا همون سیستم عامل ویندوز ذخیره میشن. بنابراین، این همون نوع از اکانت ها یا حساب های کاربری مشابهی هستش که شما هنگام ورود به یک server یا workstation که همون کامپیوتر تک کاربره قدرتمندتون، که محیط کاریتون هم تلقی میشه، استفاده میکنین.
ما میتونیم سطوح دسترسی و مجوزهای مورد نیاز sql server رو به وسیله یک حساب کاربری لاگین ویندوز یا همون Windows login شخصی مون، یا حتی Windows group ها که اکانت های دسترسی گروهی ویندوز محسوب میشن، مثل گروههای مدیریت یا همون administrators یکپارچه کنیم و بیایم و با این نوع حساب های کاربری یک اتصالی بین سیستم عامل ویندوزی و sql server ایجاد کنیم. ولی با SQL Server Logins ها یا همون حساب های کاربری مختص خود SQL Server، username و passwordها در خود SQL Serverذخیره شدن.
Password ها رمزگذاری میشن و من اظهار دارم که رمزگشایی خیلی دشوار میشه. نمیخوام بگم چیز غیرممکنی هست اما برای همه اهداف کاربردی و سودمندانه برخی اشخاص رمزگشایی این پسوردها غیر ممکن هست.
یک مدیر یا همون administrator میتونه پسورد هر کاربر رو تغییر بده ولی نمیتونه بره و به پسورد حساب کاربریش نگاه کنه. خب؛ این login ها فقط به شما یک سطح دسترسی برای سرور میدن. یکسری سطوح دسترسی به منظور به دست اوردن و بهره برداری از یک پایگاه داده شخصی و یا حتی سفارشی کردن پایگاه داده تون، و این هم بدونید که ما باید کاربران رو برای کار در هر پایگاه داده رو بعنوان administrator تنظیم کنیم و برای این کار هم می تونیم از کاربران تعریف شده با حساب کاربری SQL Server Login یا Windows Loginاستفاده کنیم و این طور کاربران به پایگاه داده نگاشت میشن و کاربران یک پایگاه داده هم میتونن یوزرنیم با نام مشابه یا متفاوتی داشته باشن. برای مثال نام login شما میتونه John باشه، اما بعد، درون یک پایگاه داده به عنوان dbadministrator بمعنی مدیر دیتابیس و بالطبع با سطوح دسترسی یک مدیر؛ یا اینکه به عنوان همون john شناخته میشین.
Username پایگاه داده یک کاربر میتونه با نام login مطابقت کنه اما لازم نیست و این هم بدونید که کاربران پایگاه داده یک پسورد اضافی ندارن. بنابراین شما بعنوان یک کاربر پایگاه داده بدونید که فقط یک پسورد با لاگین شما در ارتباط هست. این قانون در مورد انواع حساب های کاربری sql server صادق هست، پس حتی حساب کاربری از نوع SQL Server Loginsیا SQL login تون یک پسورد داره و همین طور هم Windows login تون و دلیل این مهم هم این هست: زمانی که شما برای لاگین شدن یک پسورد ارائه میدین دیگه نیازی نیست که یک پسورد دیگه برای دسترسی به پایگاه داده جداگونه ارائه بدین و اونوقت مدیران یا همون ادمین ها میتونن هر کاربر رو به صورت جداگونه برای اینکه ایا میتونن وارد پایگاه داده بشن یا نه، کنترل کنن.