SA (مخفف System Administrator) قدرتمندترین Login داخلی SQL Server است و بهطور پیشفرض عضو نقش سرور sysadmin است. اگر رمز آن را فراموش کردهای و هیچ Login دیگری با دسترسی مدیریتی نداری، بهنظر میرسد قفل شدهای — اما خوشبختانه اگر به سیستمعامل سروری که SQL Server روی آن نصب است دسترسی Administrator داشته باشی، میتوانی با Single-User Mode دوباره کنترل را به دست بگیری.
اگر Login دیگری (چه یک حساب ویندوزی و چه یک SQL Login) داری که عضو نقش sysadmin است، نیازی به روش پیچیدهی زیر نیست — فقط با آن وصل شو و رمز SA را مستقیم عوض کن:
ALTER LOGIN sa WITH PASSWORD = N'N3wStr0ngP@ss!'; ALTER LOGIN sa ENABLE;
اگر چنین Login ای نداری، ادامهی این راهنما را دنبال کن.
از SQL Server Configuration Manager یا services.msc، سرویس SQL Server (MSSQLSERVER) را متوقف کن.
سرویس را از طریق Command Prompt با دسترسی Administrator و با پارامتر -m استارت کن. این حالت باعث میشود SQL Server فقط یک اتصال را بپذیرد و آن اتصال بهصورت خودکار دسترسی sysadmin کامل داشته باشد — حتی بدون رمز عبور صحیح:
NET STOP MSSQLSERVER NET START MSSQLSERVER /m"SQLCMD"
مقدار SQLCMD بعد از /m نام برنامهای است که اجازهی اتصال دارد؛ این کار باعث میشود فقط از طریق ابزار خطفرمان SQLCMD بتوانی وصل شوی و SSMS در این حالت متصل نشود.
در همان Command Prompt، دستور sqlcmd را اجرا کن و رمز SA را تغییر بده:
sqlcmd -S localhost -E
بعد از اجرای دستور بالا وارد محیط SQLCMD میشوی؛ حالا این دستورها را بزن (بعد از هر خط، GO را جدا اجرا کن):
ALTER LOGIN sa WITH PASSWORD = N'N3wStr0ngP@ss!'; GO ALTER LOGIN sa ENABLE; GO
سرویس را دوباره متوقف و بدون پارامتر -m استارت کن تا به حالت چند-کاربرهی معمولی برگردد:
NET STOP MSSQLSERVER NET START MSSQLSERVER
حالا میتوانی در SSMS با نام کاربری sa و رمز جدید وصل شوی.
sysadmin باشد تا در صورت مشکل با SA، راه جایگزین داشته باشی. رمز SA را هم به یک مدیریتکنندهی رمز سازمانی (Password Manager) بسپار.ALTER LOGIN رمز SA را عوض کن.-m) و SQLCMD میتوانی بدون رمز قبلی، رمز جدید تنظیم کنی.برای آشنایی بیشتر با مفهوم Login و نقشهای سرور، درسهای Logins و Roles را ببین.
فصل امنیت دورهی SQLFarsi، Login، User، Role و Permission را از پایه توضیح میدهد.
شروع فصل امنیت