Yapacağınız şey, yeni kimlik bilgileri oluşturmak için SQL Server sürümünüzü ve SQL Server hizmetini indirmeyi göze alamayacağınıza bağlı olacaktır. Buradaki ilk iki yöntem, örneği yeniden başlatmayı gerektirmez:
SQL Server 2005, 2008 ve 2008 R2 örnekleri için
Hesabı kullanarak bağlanabilirsiniz NT AUTHORITY\SYSTEM
(veya diğer arka kapı yöntemleri). Buradaki bazı cevaplarda bazı detaylar var:
Ayrıca bu soruna yönelik MSSQLTips.com adresinde bir ipucum var:
Temel olarak, PSExec'i Microsoft'tan indirin, ardından kurduktan sonra Management Studio'yu başlatmak için kullanın:
PsExec -s -i "C:\...\Ssms.exe"
Bu şekilde bağlanacak NT AUTHORITY\SYSTEM
ve aşağıdakiler gibi Object Explorer'da bir şeyler yapmanıza izin verecek:
Örneği SQL Server ve Windows Kimlik Doğrulama moduna değiştirin - Sunucu adını sağ tıklatın, özelliklere basın ve şu anda yalnızca Windows olarak ayarlanmışsa radyo düğmesini değiştirin:
sa
Hesap şifresini ayarlayın - Güvenlik'i genişletin, Girişler'i genişletin, sağ tıklayın sa
ve Özellikler'e basın; sonuçta ortaya çıkan iletişim kutusunda iki şifre girişi alanı olacaktır:
Kendi giriş bilgilerinizi bir giriş olarak ekleyinsysadmin
- Girişler, Yeni Girişler'i sağ tıklayın ... giriş adınızı girin (forma girin DOMAIN\username
), sonra Sunucu Rolleri sekmesine gidin ve sysadmin
kutuyu işaretleyin ve Tamam'ı tıklayın:
(veya, giriş bilgileriniz daha önce listelenmişse, Özellikler'e sağ tıklayın ve sysadmin
Sunucu Rolleri altında kontrol edildiğinden emin olun )
SQL Server 2012 ve daha yeni örnekler için
SQL Server 2012 ile başlayarak, NT Authority\SYSTEM
artık varsayılan olarak SQL Server'a hak verilmedi. Bu yeni sürümlerde bunu yapmanın başka bir yolu da Argenis Fernandez tarafından ayrıntılı olarak açıklanmıştır :
- SQL VSS Yazıcı hizmeti çalışıyorsa, durdurun ve tüm bakım planlarını veya buna bağlı olabilecek 3. taraf yedekleme yazılımlarını askıya alın.
Açık regedit.exe
değerini değiştirmek ve HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SQLWriter\ImagePath
işaret edecek SQLCMD.exe
içinde olacak, C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\**<...110|120|130|140...>**\Tools\Binn
. Düzenlemeden sonra, kayıt defteri değeri aşağıdaki gibi görünmelidir (kaydırma için üzgünüm):
"C:Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.exe" -S .\instancename -E -Q "ALTER ROLE sysadmin ADD MEMBER [YourDomain\YourUserName];"
SQL VSS Writer servisini tekrar başlatmayı deneyin (bir hata ile karşılaşacaksınız; sorun değil).
Şimdi sysadmin
kullanarak bağlanabilmelisiniz YourDomain\YourUserName
. Bu nedenle, SQL VSS Yazıcı hizmetini durdurun, kayıt defterini düzeltin ve hizmeti yeniden başlatın (çalışmasına ihtiyacınız varsa veya bunu başlatmadan önce çalışıyorsa).
İkinci bir ipucunda daha detaylı olarak bu konudan geçtim:
Bu ipucunu yazdığımda, kopyasını alma SQLCMD.exe
ve değiştirme konusunda daha hantal bir yaklaşım kullandım sqlwriter.exe
- hizmeti SQLCMD.exe
doğrudan yönlendirmek çok daha kolaydı .
SQL Server hizmetini almak için göze alabilirsiniz
Microsoft'tan tek bir kullanıcı modunda örneği yeniden başlatmayı gerektiren resmi olarak desteklenen bir yol var:
Ayrıca SQL Server'ı yönetmek için bir Powershell çözümü olan dbatools.io'da bir işlev de vardır Reset-DbaAdmin
:
Güvenlik burada asıl mesele değil
Microsoft'tan bu sözde "güvenlik açıklarını" "düzeltmeleri" için arayan birçok kişi görüyorum. Bunlar, haklı olarak sahip olduğunuz bir SQL Server örneğine erişimi kurtarmak için geçerli yaklaşımlardır. Hepsi, SQL Server'ın bulunduğu fiziksel ana bilgisayarda yükseltilmiş ayrıcalıklar gerektirir; Birkaç kişiye söylediğim gibi, geliştiricilerin SQL Server yüklemeleriyle uğraşmasını istemiyorsanız, onları yöneticiler yapmayın.