[SQL Server] 在安裝時未將管理帳戶加入 SQL Server 的補救措施

最近可能是因為新電腦重灌次數太多,有時候安裝順序會有點混亂,這次的 SQL Server 就是這樣,一開始我安裝 SQL Server (2008 R2) 時用的是本機帳戶,後來我使用網域帳戶登入,結果在使用 SQL Server Management Studio 時,出現無法使用 Windows 帳戶登入的訊息...

最近可能是因為新電腦重灌次數太多,有時候安裝順序會有點混亂,這次的 SQL Server 就是這樣,一開始我安裝 SQL Server (2008 R2) 時用的是本機帳戶,後來我使用網域帳戶登入,結果在使用 SQL Server Management Studio 時,出現無法使用 Windows 帳戶登入的訊息,而一般我們在安裝 SQL Server 時就會先行設定,那是不是變成要重新安裝?

非也,我們還是有一些方法可以解決這個問題。

1. 首先,我們要先以單一使用者模式 (single user mode) 來啟動 SQL Server 服務,這可以保證在 SQL Server 服務執行期間不會有第二個人可存取 SQL Server,請開啟命令提示字元,並輸入下面兩個指令:

net stop mssqlserver
net start mssqlserver /m

 

2. 使用 sqlcmd.exe 連到 SQL Server,請下 sqlcmd –S . –E 指令 (-S 為要連到的伺服器,使用 "." 表示要連到本機,-E 則是指定使用 Trusted Connection),此時應會出現提示指令 (1>):

image

此時請輸入 CREATE LOGIN [WINDOWS_CREDENTIAL] FROM WINDOWS,其中 [WINDOWS_CREDENTIAL] 是指你要加入 SQL Server 的 Windows 帳戶,如果是本機帳戶,請用 [COMPUTER_NAME\USER_NAME] 格式,若是網域,則請用 [DOMAIN_NAME\USER_NAME] 格式,然後按 ENTER,此時會出現 2>,輸入 GO,再按 ENTER,這個指令會送到資料庫執行。

image

然後再輸入 EXEC sp_addsrvrolemember @loginame='YOUR_LOGIN_NAME', @rolename='sysadmin',這個指令會將你指定的 Server Role 給你指定的 Login 帳戶,因為我們要加的是 Administrator,所以 rolename 要指定 sysadmin,而 loginame 就是你剛加的帳戶名稱。然後一樣按 ENTER,再輸入 GO,再按 ENTER 執行。

完成後,輸入 quit 按 ENTER 以結束 sqlcmd.exe。

 

3. 重新啟動 SQL Server 服務,請輸入下列指令:

net stop mssqlserver
net start mssqlserver

 

完成後,打開 SQL Server Management Studio,即可使用目前的帳戶登入到 SQL Server 了。

 

Reference:

http://blogs.ameriteach.com/chris-randall/2009/12/11/sql-server-2008-forgot-to-add-an-administrator-account.html