單一使用者模式(single-user mode)下,如何連接到 SQL Server

本文將介紹單一使用者模式(single-user mode)下,如何連接到 SQL Server。

本文針對論壇上有朋友提到利用設定 SQL Server 服務啟動參數【-m】,來使用單一使用者模啟動 SQL Server,發生無法登入的情況,本文嘗試模擬這個情境,試圖找出可能的解決方案。

啟動單一使用者模式的方式有兩種,已預設執行個體為例,您可以在命令提示字元中輸入【net start mssqlserver /m】,若是具名執行個體,則是輸入【net start mssql$執行個體名稱 /m】。

image

以 SQL Server 2008 R2 為例,您也可以開啟 SQL Server 組態管理員。

image

於【SQL Server 組態管理員(本機)> SQL Server 服務 > 雙擊 SQL Server 執行個體 > 進階 > 於啟動參數最左邊輸入-m;】,然後按確定後重新啟動服務。

image

若您使用的是 SQL Server 2012,則是在【SQL Server(執行個體)> Startup Parameters > Specify a startup parameter】輸入【-m】,然後按 add 再按 確定後重新啟動服務。

image

在單一使用者模式下,您可以利用 SQL Server Managment Studio(以下簡稱 SSMS) 或 sqlcmd 來連接 SQL Server,但特別注意的是,由於預設 SSMS 啟動後會連接至【物件總管(Object Explorer)】(如下圖)。

image

因此在您連接至物件總管後,因為單一使用者模式下,您只能有一個使用者連接 SQL Server,若在此時您又嘗試開啟新的查詢,就會出現如下圖的錯誤訊息。

image

您可以修改 SSMS 啟動的預設動作,將【選項 > 環境 > 一般 > 啟動時 > 開啟新增查詢視窗】,然後按確定。

image

若不調整 SSMS 啟動選項,也可以在開啟 SSMS 後預設連接物件總管時,先按取消在自行新增查詢,就可以不會被物件總管占用單一使用者模式的唯一連線。

另外,您也可以利用 sqlcmd 來連接 SQL Server。以下範例示範使用目前登入 Windows 的使用者帳戶來連接至本機的預設執行個體,可以於命令提示字元中輸入:

sqllcmd -S. -E

執行結果如下:

image

 

【參考資料】