如果不慎遺忘SQLServer的管理員密碼(即:遺忘了所有的管理員密碼),或者需要強行添加另一個管理員帳號,這時候需要一種補救措施。 SQLServer提供了單用戶模式
如果不慎遺忘 SQL Server 的管理員密碼(即:遺忘了所有的管理員密碼),或者需要強行添加另一個管理員帳號,這時候需要一種補救措施。
SQL Server 提供了單用戶模式(也稱為維護模式),便于用戶更改服務器配置選項或恢復受損的系統數據庫。在單用戶模式下啟動 SQL Server,可以使本機Administrators 組的任何成員作為 sysadmin服務器角色的成員連接到 SQL Server 數據庫引擎(實例)。
注意:在單用戶模式啟動之前,請停止 SQL Server Agent 服務,防止 SQL Server Agent 搶占此唯一的連接。
一、啟用單用戶模式
1. 打開SSCM(SQL Server配置管理器)
2. 停止SQL Server 引擎服務(實例)
3. 修改該引擎服務的屬性
4. 添加單用戶模式啟動參數
(1) 適用于SQL Server 2012之前的舊版本
(2) 適用于SQL Server 2012及后陸版本
5. 完成上述修改后,啟動數據庫引擎服務
6. 檢查啟動日志,確認已進入了單用戶模式
2014-10-13 13:55:08.95 spid7s SQL Server started in single-user mode. This an informational message only. No user action is required.
注意:啟動日志文件的位置及文件名由“啟動參數”的“-e”參數指定。例如:
C:\Users\Administrator> notepad "C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\Log\ERRORLOG"
二、越權添加或修改管理員帳戶
1. 查看數據庫引擎服務的列表(確保下一步操作時不會敲錯實例的名稱)
C:\Users\Administrator> sqlcmd -L
服務器:
PC2014
PC2014\SQL2008R2
PC2014\SQL2012
2. 打開命令行窗口,使用 sqlcmd 連接到數據庫
C:\Users\Administrator> sqlcmd -S PC2014\SQL2008R2
3. 執行以下其中一條T-SQL語句,添加或修改帳號
(1)添加本地或域帳戶到數據庫管理員組
1> EXEC sp_addsrvrolemember 'PC2014\jim', 'sysadmin';
2> GO
(2)添加內置帳戶到數據庫管理員組
1> EXEC sp_addsrvrolemember 'BUILTIN\administrators', 'sysadmin';
2> GO
(3)如果遺忘了舊密碼,重置密碼 (官方不推薦使用sp_password)
1> Alter Login [BUILTIN\administrator] with password='newpassword';
2> GO
(4)如果還記得舊密碼,修改密碼
1> Alter Login [sa] with password='newpassword' old_password='oldpassword';
2> GO
注意:如果SA帳戶被禁用,則
1> Alter Login [sa] ENABLE;
2> GO
注意:如果服務器身份驗證模式僅為“Windows身份驗證模式”,,那么需要改為“SQL Server和Windows身份驗證模式”,才可以使用sa帳戶。修改此模式需要修改注冊表,注冊表項位于:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<實例ID>\MSSQLServer,將LoginMode改為2即可。
“實例ID”的命名格式默認為“MSSQL<版本號>.<實例名稱>”,例如 “MSSQL12.MSSQLSERVER”。這個設置是在安裝SQL Server時指定的,安裝向導將使用這個“實例ID”創建對應的文件夾。
三、啟動數據庫引擎服務
1. 打開SSCM,修改數據庫引擎的屬性,將“-m ”參數從啟動參數中移除。
2. 啟動數據庫引擎服務,以新建或修改過的數據庫管理員帳戶連接到數據庫。
附注:直接使用命令行啟動單用戶模式的方法
1. 找到 sqlservr.exe 的路徑
2. 復制 sqlservr.exe 到命令行窗口,添加“-m”參數并運行
例如:
C:\Users\Administrator> "C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\Binn\sqlservr.exe" -sSQL2008R2 -m
啟動日志將直接顯示在命令行窗口,請檢查啟動日志,確認已成功啟用了單用戶模式。
注:還可以強行指定客戶端程序。
(1) -m "sqlcmd" 。指定只有sqlcmd可以連接到SQL Server 實例。
(2) -m "Microsoft SQL Server Management Studio -Query" 。指定只有SSMS可以連接到SQL Server 實例。
3. 另外打開一個命令行窗口,即可以使用 sqlcmd 執行操作。
4. 如需停止SQL Server 實例,只需要在sqlservr.exe窗口按Ctrl-C(甚至直接關閉sqlservr.exe的窗口),在遇到提問時回答“Y”。
Do you wish to shutdown SQL Server (Y/N)?
本文出自 “我們一起追過的MSSQL” 博客,請務必保留此出處
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com