close


假設 SA 帳號的密碼忘了該怎麼辦呢?大部分的人都會回答:「那就用 windows 系統的管理者帳號登入SQL Server,透過SSMS工具修改SA帳號囉!」
這是最簡單又快速的方法。若很不幸的,使用 Windows 管理者帳號登入後發現權限不足(也就是該帳號不屬於sysadmin角色),那該怎麼辦呢?
曾經有人說,對付微軟作業系統最好(也是笨)的方法就是重開機、重新啟動、重新安裝。我想若他遇到這個問題應該會說:「那只好重灌了,將所有資料庫附加到新的執行個體。」因為這是最省腦力的解決方法。
這個解決方案相當耗時,且若還需要復原其他登入帳號以及工作排程,則須還原master與msdb系統資料庫。此外,若這台SQL Server 有一堆複雜的設定(例如:Replication)時,那重灌就更不是最佳解了。若你曾有修復 master 系統資料庫的經驗,你也許還有另一項選擇。那就是將另外一個執行個體的 master 資料庫的實體檔案(master.mdf、mastlog.ldf),直接覆蓋掉此受損的執行個體之 master 資料庫。之後再利用先前對此執行個體的 master 資料庫備份來還原,不過這個作法,也不是最佳解法。此外,如果 master 資料庫的備份較舊,可能不會有所有的資訊。如果 master 資料庫的備份比較新,可能與先前的執行個體擁有相同的登入,因此,系統管理員仍然會遭到鎖定。

更快的解決方法就是使用「單一使用者模式」啟動 SQL Server 執行個體,再以 Windows 帳號登入 SQL Server。因為,單一使用者模式下啟動 SQL Server 可讓電腦本機管理員群組的任何成員以 sysadmin 固定伺服器角色的成員身分,連接到 SQL Server 的執行個體。

操作步驟如下:

1.開啟「 SQL Server 組態管理員」點選 「SQL Server 服務」後,在右窗格中,以滑鼠右鍵點選 [SQL Server (<instance_name>)],選擇快捷選單內的 [屬性]

 組態管理員

2.在[進階」 索引標籤的 啟動參數」 方塊中,輸入以分號 (;) 分隔的參數。
例如,以單一使用者模式啟動,則使用 -m; 插入現有啟動選項前面,然後重新啟動資料庫
       修改SQL啟動參數 

以單一使用者模式啟動 SQL Server 時,要先停止其他服務(例如 SQL Server Agent、Reporting Servies)。否則,這些服務可能會先進行連接,就無法以另一個使用者的身分進行連接。

 連線到伺服器

疑難排解:當系SQL Server 的統管理員遭到鎖定時如何登入 SQL Server 修改設定



以上問題來自 SQL Server Quiz 比賽平台內的2010/10/10
參考資料:
以單一使用者模式啟動 SQL Server
疑難排解:當系統管理員遭到鎖定時連接到 SQL Server
如何:設定伺服器啟動選項 (SQL Server 組態管理員)
德瑞克SQL學習筆記

補充:另一解法參考http://www.dotblogs.com.tw/ricochen/archive/2010/07/01/16303.aspx
補充:除了上述方法外,passwordunlocker 網站有提供付費工具重置SA密碼 - 該網站也提供其他軟體(例如Office或RAR壓縮軟體)解密的工具,不過若知道上述設定方法就不用花冤枉錢了J)

arrow
arrow
    全站熱搜

    小草 發表在 痞客邦 留言(0) 人氣()