情況一:只是忘記了密碼 sp_password Null,"123,"sa"把sa的密碼設為“123” 執行成功後有“Command(s) completed successfully.” OK! 情況二:忘記了密碼,而且從sysadmin中刪除了builtin\Administrators帳號,現在沒其他人是sysadmin了 A:SQL Server 2005/2008提供了針對該情況的更好的災難恢復方法,無需侵入master資料庫,不會對master資料庫中的物件和資料(例如登陸帳號,證書等)造成損壞。Windows管理員組的成員現在當SQL Server以單使用者模式啟動(另外一個名稱為維護模式)的情況下對SQL Server有了訪問許可權。 透過使用單使用者模式,SQL Server 2005/2008避免了Windows管理員以sysadmin的身份在不被發現的情況下濫用許可權。Windows管理員帳號能進行部分維護任務,例如安裝補丁等。 要將SQL Server以單使用者模式啟動,您可以在命令列模式下增加“-m”引數。您也可以使用SQL Server配置管理員工具。它提供了對檔案訪問和其他許可權的合適控制。要是用配置管理工具來恢復您的系統,您可以根據如下步驟: 1. 從選單->SQL Server 2005->配置,開啟配置管理工具(SQL Server Configuration Manager)2. 停止您想要恢復的SQL Server例項3. 找到“高階”標籤,“啟動引數”選項文字框中增加“;–m”4. 點選“是”按鈕,重新啟動SQL Server例項請注意:請確保在“;”和“-m”之間沒有空格。註冊引數解析器對類似的輸入錯誤非常敏感。您可以在SQL Server的ERRORLOG檔案內看到顯示“SQL Server started in single-user mode.”5. 在SQL Server例項以單使用者模式啟動後,Windows管理員帳號就能使用sqlcmd工具在Windows驗證模式下連線SQL Server。您可以使用T-SQL命令諸如“sp_addsrvrolemember”來在sysadmin伺服器角色中新增現有登入帳號或新建立一個登入帳號。範例語句如下: EXEC sp_addsrvrolemember "CONTOSO\Buck", "sysadmin"; GO 6. 只要sysadmin訪問許可權被恢復,在配置管理中從啟動引數中移除“;-m”引數,重新啟動SQL Server例項 重要的安全提示:a. 該過程應該只能被用於當沒有其他方法使用特權帳號(例如sysadmin或等同角色)來訪問系統的災難恢復。b. 該過程允許Windows管理員在SQL Server中有越權行為。它包含了可以被監測和檢測出的明確的侵入行為,包含:1. 在單使用者模式下停止SQL Server並重啟2. 使用Windows帳號連線SQL Server。
情況一:只是忘記了密碼 sp_password Null,"123,"sa"把sa的密碼設為“123” 執行成功後有“Command(s) completed successfully.” OK! 情況二:忘記了密碼,而且從sysadmin中刪除了builtin\Administrators帳號,現在沒其他人是sysadmin了 A:SQL Server 2005/2008提供了針對該情況的更好的災難恢復方法,無需侵入master資料庫,不會對master資料庫中的物件和資料(例如登陸帳號,證書等)造成損壞。Windows管理員組的成員現在當SQL Server以單使用者模式啟動(另外一個名稱為維護模式)的情況下對SQL Server有了訪問許可權。 透過使用單使用者模式,SQL Server 2005/2008避免了Windows管理員以sysadmin的身份在不被發現的情況下濫用許可權。Windows管理員帳號能進行部分維護任務,例如安裝補丁等。 要將SQL Server以單使用者模式啟動,您可以在命令列模式下增加“-m”引數。您也可以使用SQL Server配置管理員工具。它提供了對檔案訪問和其他許可權的合適控制。要是用配置管理工具來恢復您的系統,您可以根據如下步驟: 1. 從選單->SQL Server 2005->配置,開啟配置管理工具(SQL Server Configuration Manager)2. 停止您想要恢復的SQL Server例項3. 找到“高階”標籤,“啟動引數”選項文字框中增加“;–m”4. 點選“是”按鈕,重新啟動SQL Server例項請注意:請確保在“;”和“-m”之間沒有空格。註冊引數解析器對類似的輸入錯誤非常敏感。您可以在SQL Server的ERRORLOG檔案內看到顯示“SQL Server started in single-user mode.”5. 在SQL Server例項以單使用者模式啟動後,Windows管理員帳號就能使用sqlcmd工具在Windows驗證模式下連線SQL Server。您可以使用T-SQL命令諸如“sp_addsrvrolemember”來在sysadmin伺服器角色中新增現有登入帳號或新建立一個登入帳號。範例語句如下: EXEC sp_addsrvrolemember "CONTOSO\Buck", "sysadmin"; GO 6. 只要sysadmin訪問許可權被恢復,在配置管理中從啟動引數中移除“;-m”引數,重新啟動SQL Server例項 重要的安全提示:a. 該過程應該只能被用於當沒有其他方法使用特權帳號(例如sysadmin或等同角色)來訪問系統的災難恢復。b. 該過程允許Windows管理員在SQL Server中有越權行為。它包含了可以被監測和檢測出的明確的侵入行為,包含:1. 在單使用者模式下停止SQL Server並重啟2. 使用Windows帳號連線SQL Server。