MS SQL sunucuda yanlışlıkla tüm oturum (login) hesaplarını silerseniz ya da devre dışı bırakırsanız SQL sunucunuza bağlantı da kuramazsınız. SA hesabını da güvenlik nedeni ile daha önceden devre dışı bıraktıysanız zor durumda kalabilirsiniz.
Veri tabanlarını farklı SQL sunucuya taşıyıp çalıştırma seçeneği zahmetli de olsa mümkündür. Tabi veri tabanı bazında şifreleme yapmıyorsanız.
SQL Server size bu durum için alternatif bir çözüm yolu sunmaktadır.
Microsoft SQL Server, sunucuda “Local Administrators” grubunda yer alan bir kullanıcıya bu durumu düzeltmesi için imkan sağlar.
İlk adımda SQL de login hesaplarında olmayan bir kullanıcıyı yerel yönetici hesabına ekliyoruz ve SQL sunucuda bu hesap ile oturum açıyoruz.
Hesapları devre dışı bıraktığımız instance ı durdurmamız gerekiyor.
Komut satırı ya da powershell i yönetici olarak çalıştırıp aşağıdaki adrese geliyoruz.
“C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn”
NOT: SQL in kurulu olduğu dizine göre adres değişebilir.
Bu adres de “sqlservr.exe” aracı yer almaktadır.
Sqlservr.exe -m komutu ile instance a single-user mode ile başlatma komutu veriyoruz.
NOT: powershell için .\sqlservr.exe -m girilmelidir. Parametreler büyük harf ve küçük harf duyarlıdır.
Bu komut ile instance single-user mode konumuna alınır.
Biraz bekledikten sonra aşağıdaki resimde olduğu gibi login hatalarını alacaksınız.
Ve SQL hizmeti halen çalışmıyor konumundadır.
Farklı bir komut satırı penceresini gene yönetici modunda açıyoruz.
Sqlcmd -S localhost -E komutu ile instance a bağlanıyoruz.
Son aşamada ise yeni bir sysadmin kullanıcısı oluşturuyoruz.
Create login [sqladmin] with password = ‘1234qqqQ’
go
Alter server role [sysadmin] add member [sqladmin]
go