如果不慎遺忘SQLServer的管理員密碼(即:遺忘了所有的管理員密碼),或者需要強(qiáng)行添加另一個(gè)管理員帳號(hào),這時(shí)候需要一種補(bǔ)救措施。 SQLServer提供了單用戶模式
如果不慎遺忘 SQL Server 的管理員密碼(即:遺忘了所有的管理員密碼),或者需要強(qiáng)行添加另一個(gè)管理員帳號(hào),這時(shí)候需要一種補(bǔ)救措施。
SQL Server 提供了單用戶模式(也稱為維護(hù)模式),便于用戶更改服務(wù)器配置選項(xiàng)或恢復(fù)受損的系統(tǒng)數(shù)據(jù)庫。在單用戶模式下啟動(dòng) SQL Server,可以使本機(jī)Administrators 組的任何成員作為 sysadmin服務(wù)器角色的成員連接到 SQL Server 數(shù)據(jù)庫引擎(實(shí)例)。
注意:在單用戶模式啟動(dòng)之前,請(qǐng)停止 SQL Server Agent 服務(wù),防止 SQL Server Agent 搶占此唯一的連接。
一、啟用單用戶模式
1. 打開SSCM(SQL Server配置管理器)
2. 停止SQL Server 引擎服務(wù)(實(shí)例)
3. 修改該引擎服務(wù)的屬性
4. 添加單用戶模式啟動(dòng)參數(shù)
(1) 適用于SQL Server 2012之前的舊版本
(2) 適用于SQL Server 2012及后陸版本
5. 完成上述修改后,啟動(dòng)數(shù)據(jù)庫引擎服務(wù)
6. 檢查啟動(dòng)日志,確認(rèn)已進(jìn)入了單用戶模式
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.
注意:啟動(dòng)日志文件的位置及文件名由“啟動(dòng)參數(shù)”的“-e”參數(shù)指定。例如:
C:\Users\Administrator> notepad "C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\Log\ERRORLOG"
二、越權(quán)添加或修改管理員帳戶
1. 查看數(shù)據(jù)庫引擎服務(wù)的列表(確保下一步操作時(shí)不會(huì)敲錯(cuò)實(shí)例的名稱)
C:\Users\Administrator> sqlcmd -L
服務(wù)器:
PC2014
PC2014\SQL2008R2
PC2014\SQL2012
2. 打開命令行窗口,使用 sqlcmd 連接到數(shù)據(jù)庫
C:\Users\Administrator> sqlcmd -S PC2014\SQL2008R2
3. 執(zhí)行以下其中一條T-SQL語句,添加或修改帳號(hào)
(1)添加本地或域帳戶到數(shù)據(jù)庫管理員組
1> EXEC sp_addsrvrolemember 'PC2014\jim', 'sysadmin';
2> GO
(2)添加內(nèi)置帳戶到數(shù)據(jù)庫管理員組
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
注意:如果服務(wù)器身份驗(yàn)證模式僅為“Windows身份驗(yàn)證模式”,,那么需要改為“SQL Server和Windows身份驗(yàn)證模式”,才可以使用sa帳戶。修改此模式需要修改注冊(cè)表,注冊(cè)表項(xiàng)位于:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<實(shí)例ID>\MSSQLServer,將LoginMode改為2即可。
“實(shí)例ID”的命名格式默認(rèn)為“MSSQL<版本號(hào)>.<實(shí)例名稱>”,例如 “MSSQL12.MSSQLSERVER”。這個(gè)設(shè)置是在安裝SQL Server時(shí)指定的,安裝向?qū)⑹褂眠@個(gè)“實(shí)例ID”創(chuàng)建對(duì)應(yīng)的文件夾。
三、啟動(dòng)數(shù)據(jù)庫引擎服務(wù)
1. 打開SSCM,修改數(shù)據(jù)庫引擎的屬性,將“-m ”參數(shù)從啟動(dòng)參數(shù)中移除。
2. 啟動(dòng)數(shù)據(jù)庫引擎服務(wù),以新建或修改過的數(shù)據(jù)庫管理員帳戶連接到數(shù)據(jù)庫。
附注:直接使用命令行啟動(dòng)單用戶模式的方法
1. 找到 sqlservr.exe 的路徑
2. 復(fù)制 sqlservr.exe 到命令行窗口,添加“-m”參數(shù)并運(yùn)行
例如:
C:\Users\Administrator> "C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\Binn\sqlservr.exe" -sSQL2008R2 -m
啟動(dòng)日志將直接顯示在命令行窗口,請(qǐng)檢查啟動(dòng)日志,確認(rèn)已成功啟用了單用戶模式。
注:還可以強(qiáng)行指定客戶端程序。
(1) -m "sqlcmd" 。指定只有sqlcmd可以連接到SQL Server 實(shí)例。
(2) -m "Microsoft SQL Server Management Studio -Query" 。指定只有SSMS可以連接到SQL Server 實(shí)例。
3. 另外打開一個(gè)命令行窗口,即可以使用 sqlcmd 執(zhí)行操作。
4. 如需停止SQL Server 實(shí)例,只需要在sqlservr.exe窗口按Ctrl-C(甚至直接關(guān)閉sqlservr.exe的窗口),在遇到提問時(shí)回答“Y”。
Do you wish to shutdown SQL Server (Y/N)?
本文出自 “我們一起追過的MSSQL” 博客,請(qǐng)務(wù)必保留此出處
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com