有時候我們在實作LAB時,不小心手滑了,不小心砍掉本機上SQL Server服務的登入帳號,
這時sa帳號或Windows驗證沒辦法登入,有些人會土法煉鋼的方式乾脆的重裝SQL Server,
在這裡記錄一下Windows驗證 與 SQL Server驗證登入失敗處理方式
因為要進入單一登入模式,需先將SQL Server及相關的服務(如SQL Server Agent)停止
Command Line 下停止SQL Server服務
net stop MSSQLSERVER /Y
MSSQLSERVER 為服務名稱,需依照不同Instance Name改變
再來用單一模式啟動SQL Server服務(啟動參數m)
net start MSSQLSERVER /m
接下來使用sqlcmd連接到服務將登入帳戶重新建立
以上步驟也適用重建系統資料庫或更改部分設定,如定序等。
use master
go
alter login [sa] with password=N'Pw@rebuild',
/*依照自己需要狀況設定
default_database=[master],
default_language=[English],
check_expiration=ON,
check_policy=ON*/
go
/*重建Windows登入*/
create login [BUILTIN\Administrators] from WINDOWS
/*with default_database=[master],
default_language=[English],*/
go
建立完成後將帳號啟用
use master
alter login [sa] enable
go
alter login [BUILTIN\Administrators] enable
go
將SQL Server及Windows 混和驗證模式打開
以下其實是針對SQL Server 所屬的登錄檔進行修正,1為Windows驗證,2為混合驗證
use master
go
exec xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2
go
了解的人都知道改完登陸檔服務需重啟。
這時我們先將SQL Server服務停掉
net stop MSSQLSERVER /Y
並用一般啟動參數啟動服務
net start MSSQLSERVER /Y
大功告成 !