تنظیم پایگاه داده پیشفرض Default Database برای ورودهای SQL Server: راهنمای جامع مدیریت دسترسی
تنظیم یک پایگاه داده پیشفرض Default Database برای ورودهای SQL Server یکی از جنبههای کلیدی مدیریت دسترسی و امنیت در محیطهای پایگاه داده است. این تنظیم نه تنها تجربه کاربری را بهبود میبخشد، بلکه میتواند به افزایش امنیت و جلوگیری از خطاهای احتمالی کمک کند. وقتی یک کاربر SQL Server متصل میشود اما پایگاه داده خاصی را مشخص نمیکند، به طور خودکار به پایگاه داده پیشفرض خود هدایت میشود. این عمل به مدیریت کارآمدتر دسترسی به دادهها و حفظ یکپارچگی سیستم کمک شایانی میکند.
برای ایجاد یک ورود جدید (Login) در SQL Server و همزمان تعیین پایگاه داده پیشفرض برای آن، از دستور `CREATE LOGIN` استفاده میکنیم. این روش تضمین میکند که هر کاربر جدید از ابتدا با تنظیمات دسترسی صحیح به پایگاه داده مورد نظر خود متصل شود و نیاز به تنظیمات دستی پس از ایجاد ورود را از بین میبرد.
CREATE LOGIN [new_user] WITH PASSWORD='Password1', DEFAULT_DATABASE=master
در مثال بالا، ورود `new_user` با رمز عبور `Password1` ایجاد شده و پایگاه داده `master` به عنوان پایگاه داده پیشفرض آن تعیین گردیده است. به این ترتیب، کاربر `new_user` بلافاصله پس از اتصال به سرور، به پایگاه داده `master` منتقل میشود مگر اینکه صراحتاً پایگاه داده دیگری را درخواست کند. این امر به ویژه برای کاربران با دسترسی محدود که تنها نیاز به کار با یک پایگاه داده خاص دارند، مفید است.
در صورتی که نیاز به تغییر پایگاه داده پیشفرض برای یک ورود موجود داشته باشید، دستور `ALTER LOGIN` ابزار قدرتمندی است. این دستور امکان بهروزرسانی تنظیمات ورود را فراهم میکند بدون اینکه نیازی به حذف و ایجاد مجدد ورود باشد، که برای مدیریت ورودهای موجود بسیار کاربردی و ایمن است.
ALTER LOGIN [existing_user] WITH DEFAULT_DATABASE=AdventureWorks2019
این دستور، پایگاه داده پیشفرض ورود `existing_user` را به `AdventureWorks2019` تغییر میدهد. این تغییر به سرعت اعمال شده و از اتصالهای بعدی کاربر به پایگاه داده قبلی جلوگیری میکند و او را به `AdventureWorks2019` هدایت مینماید. این قابلیت برای سناریوهای تغییر ساختار پایگاه داده یا جابجایی کاربران بین محیطها ضروری است.
علاوه بر استفاده از دستورات T-SQL، میتوانید پایگاه داده پیشفرض را از طریق SQL Server Management Studio (SSMS) نیز تنظیم کنید. این روش برای مدیران پایگاه داده که ترجیح میدهند از رابط کاربری گرافیکی استفاده کنند، سادهتر و بصریتر است.
برای این کار، در SSMS به بخش `Security > Logins` بروید، روی ورود مورد نظر راست کلیک کرده و `Properties` را انتخاب کنید. در پنجره Login Properties، در صفحه `General`، میتوانید `Default database` را از لیست کشویی انتخاب کرده و تغییرات را ذخیره کنید. این روش بصری به شما امکان میدهد تا به راحتی تنظیمات را مشاهده و ویرایش نمایید.
برای تأیید و مشاهده پایگاه داده پیشفرض تنظیم شده برای هر ورود، میتوانید از نمای سیستمی `sys.server_principals` به همراه `sys.databases` استفاده کنید. این کوئری به شما اطلاعات دقیقی از نام ورود و پایگاه داده پیشفرض اختصاص داده شده به آن ارائه میدهد.
SELECT sp.name AS LoginName, db.name AS DefaultDatabase
FROM sys.server_principals sp
JOIN sys.databases db ON sp.default_database_id = db.database_id
WHERE sp.type = 'S' OR sp.type = 'U'
این کوئری اطلاعات مربوط به نام ورود (LoginName) و نام پایگاه داده پیشفرض (DefaultDatabase) را از سیستم دریافت میکند. با استفاده از این اطلاعات، میتوانید به سرعت وضعیت تمام ورودها و پایگاههای داده پیشفرض آنها را بررسی کنید و از صحت تنظیمات اطمینان حاصل نمایید.
هنگام تغییر پایگاه داده پیشفرض یا مدیریت ورودها، به خصوص زمانی که پایگاه دادهای را به عنوان پیشفرض تنظیم میکنید که ورود به آن دسترسی ندارد، باید مراقب باشید. یکی از مشکلات رایج، پدیدار شدن ‘کاربران یتیم’ (Orphan Users) است. این اتفاق زمانی میافتد که یک کاربر پایگاه داده وجود دارد اما هیچ ورود متناظری در سطح سرور ندارد. برای جلوگیری از این مشکل، اطمینان حاصل کنید که هر ورود در سطح سرور یک کاربر متناظر با مجوزهای لازم در پایگاه داده پیشفرض خود دارد تا دسترسیها به درستی مدیریت شوند و مشکلات اتصال به حداقل برسد.