Saya kehilangan kata sandi sa pada mesin, dan ketika saya masuk ke mesin secara langsung menggunakan akun di grup admin, SQL Server Management Studio tidak akan mengizinkan saya untuk masuk menggunakan otentikasi Windows.
Rencana saya adalah cukup login ke server, terhubung melalui Windows Authentication, dan reset sa untuk menggunakan kata sandi baru. Karena saya tidak dapat terhubung melalui Otentikasi Windows, ini tidak akan berfungsi.
Bagaimana lagi saya bisa mengatur ulang kata sandi sa?
security
sql-server-2000
Daniel Williams
sumber
sumber
Jawaban:
Anda dapat mengikuti langkah-langkah yang disebutkan dalam tautan di bawah ini untuk mengatur ulang kata sandi SA:
Langkah-langkah yang dirangkum di bawah ini:
Sumber daya tambahan:
Pada akhirnya, Anda selalu dapat menyalin file database ke instance lain, atau bahkan menginstal ulang SQL Server (menambahkan akun lokal sebagai sysadmin selama proses itu).
sumber
Apa yang Anda lakukan akan tergantung pada versi SQL Server Anda, serta apakah Anda mampu menurunkan layanan SQL Server untuk membangun kredensial baru. Dua metode pertama di sini tidak perlu memulai kembali instance:
Untuk contoh SQL Server 2005, 2008, dan 2008 R2
Anda dapat terhubung menggunakan
NT AUTHORITY\SYSTEM
akun (atau metode backdoor lainnya). Ada beberapa detail dalam beberapa jawaban di sini:Saya juga memiliki tip tentang MSSQLTips.com yang membahas masalah ini:
Pada dasarnya, Anda mengunduh PSExec dari Microsoft, lalu menggunakannya untuk meluncurkan Management Studio setelah Anda menginstalnya:
Ini akan terhubung sebagai
NT AUTHORITY\SYSTEM
dan akan memungkinkan Anda untuk melakukan hal-hal di Object Explorer, seperti:Ubah instance ke mode SQL Server dan Windows Authentication - klik kanan nama Server, tekan properti, dan ubah tombol radio jika saat ini disetel ke Windows saja:
Tetapkan kata sandi untuk
sa
akun - perluas Keamanan, perluas Login, klik kanansa
dan tekan Properti, dan dalam dialog yang dihasilkan akan ada dua bidang entri kata sandi:Tambahkan login Anda sendiri sebagai
sysadmin
- klik kanan Login, Login Baru ... masukkan nama login Anda (dalam formulirDOMAIN\username
) kemudian pindah ke tab Peran Server dan centangsysadmin
kotak dan klik OK:(atau, jika login Anda sudah terdaftar, klik kanan, Properties, dan pastikan
sysadmin
dicentang di bawah Peran Server)Untuk SQL Server 2012 dan contoh yang lebih baru
Dimulai dengan SQL Server 2012,
NT Authority\SYSTEM
tidak lagi diberikan hak untuk SQL Server secara default. Jadi cara lain untuk melakukannya dalam versi yang lebih baru ini telah dirinci oleh Argenis Fernandez :Buka
regedit.exe
dan ubah nilaiHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SQLWriter\ImagePath
to point toSQLCMD.exe
, yang akan masukC:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\**<...110|120|130|140...>**\Tools\Binn
. Setelah diedit, nilai registri akan terlihat seperti berikut (maaf untuk pengguliran):Cobalah untuk memulai layanan SQL VSS Writer lagi (Anda akan mendapatkan kesalahan; tidak apa-apa).
Anda sekarang harus dapat terhubung
sysadmin
menggunakanYourDomain\YourUserName
. Jadi hentikan layanan SQL VSS Writer, perbaiki registri, dan mulai ulang layanan (jika Anda perlu menjalankannya, atau jika sudah berjalan sebelum Anda memulai ini).Saya telah membahas hal ini secara lebih rinci dalam tip kedua:
Meskipun ketika saya menulis tip itu, saya menggunakan pendekatan yang lebih rumit untuk membuat salinan
SQLCMD.exe
dan menggantisqlwriter.exe
- lebih mudah untuk hanya mengarahkan layananSQLCMD.exe
langsung.Jika Anda mampu mengambil layanan SQL Server
Ada jalur yang didukung secara resmi dari Microsoft yang mengharuskan memulai kembali instance dalam mode pengguna tunggal:
Ada juga fungsi di dbatools.io , solusi Powershell untuk mengelola SQL Server, yang disebut
Reset-DbaAdmin
:Keamanan bukanlah masalah utama di sini
Saya melihat banyak orang yang meminta Microsoft untuk "memperbaiki" apa yang disebut "kerentanan" ini. Ini adalah pendekatan yang valid untuk memulihkan akses ke contoh SQL Server yang Anda miliki. Mereka semua memerlukan hak yang lebih tinggi pada host fisik di mana SQL Server berada; seperti yang saya katakan kepada beberapa orang, jika Anda tidak ingin pengembang mengacaukan instalasi SQL Server, jangan menjadikannya administrator.
sumber