疑難排解:當系統管理員遭到鎖定時連接到 SQL Server
本主題描述如何以系統管理員的身分,重新取得 SQL Server Database Engine 的存取權。系統管理員可能因為下列其中一個原因而失去 SQL Server 執行個體的存取權:
屬於 sysadmin 固定伺服器角色之成員的所有登入都因為錯誤而遭到移除。
屬於 sysadmin 固定伺服器角色之成員的所有 Windows 群組都因為錯誤而遭到移除。
屬於 sysadmin 固定伺服器角色之成員的登入供已經離開公司或沒有空的個人使用。
sa 帳戶已遭到停用或沒有人知道密碼。
您可以重新取得存取權的其中一種方式就是重新安裝 SQL Server,並將所有資料庫附加到新的執行個體。這個解決方案相當耗時,而且,若要復原登入,可能需要從備份還原 master 資料庫。如果 master 資料庫的備份較舊,可能不會有所有的資訊。如果 master 資料庫的備份比較新,可能與先前的執行個體擁有相同的登入,因此,系統管理員仍然會遭到鎖定。
解決方案
以單一使用者模式使用 -m 或 -f 選項啟動 SQL Server 的執行個體。接著,電腦本機管理員群組的任何成員都可以利用 sysadmin 固定伺服器角色的成員身分,連接到 SQL Server 的執行個體。
[!附註]
當您以單一使用者模式啟動 SQL Server 執行個體時,請先停止 SQL Server Agent 服務。否則,SQL Server Agent 可能會先進行連接,您就無法以另一個使用者的身分進行連接。
當您搭配 sqlcmd 或 SQL Server Management Studio 使用 -m 選項時,您可以限制與指定之用戶端應用程式之間的連接。例如,-m"sqlcmd" 會將連接限制為單一連接,而且該連接必須將自己識別為 sqlcmd 用戶端程式。當您在單一使用者模式下啟動 SQL Server 而且有未知的用戶端應用程式佔用唯一可用的連接時,請使用這個選項。若要透過 Management Studio 中的查詢編輯器進行連接,請使用 -m"Microsoft SQL Server Management Studio - Query"。
重要事項 |
---|
請勿將這個選項當做安全性功能使用。用戶端應用程式會提供用戶端應用程式名稱,而且可能會在連接字串中提供假的名稱。 |
如需有關如何以單一使用者模式啟動 SQL Server 的逐步指示,請參閱<如何:設定伺服器啟動選項 (SQL Server 組態管理員)>。