筆者這邊重新整理:重新命名 SQL Server 作業系統的電腦名稱後之修正作業。今整理如下:
(1)修正 @@servername
請使用以下的程式碼,直接執行修正即可,無須填寫任何資料。執行完成後,系統會自動關機,您僅需重新啟動 SQL Server 即可。
DECLARE @sn sysname,@sno sysname; SELECT @sn=cast(serverproperty('servername') as sysname),@sno=@@SERVERNAME; IF @sno IS NULL BEGIN EXEC sp_addserver @server=@sn,@local = 'local'; SELECT N'Finish the server name to revise, and has already stopped serving, please restart the server'; SELECT N'完成伺服器名稱修改,並已停止服務,請重新啟動伺服器'; SHUTDOWN WITH NOWAIT; RETURN; END ELSE IF (@sn=@sno) BEGIN SELECT N'Do not need to revise the server name'; SELECT N'無須修正伺服器名稱'; RETURN; END ELSE BEGIN EXEC sp_dropserver @sno; EXEC sp_addserver @server=@sn,@local = 'local'; SELECT N'Finish the server name to revise, and has already stopped serving, please restart the server'; SELECT N'完成伺服器名稱修改,並已停止服務,請重新啟動伺服器'; SHUTDOWN WITH NOWAIT; END
(2)修正本機伺服器的登入帳號
若是原本就有允許本機的 Administrator可以管理 SQL Server 時(例如:ServerName\Administrator),請先將此帳號刪除後,再度重新加入到 SysAdmin 角色內。
雖然預設 BUILTIN\Administrators 管理群組的成員可以自動具備登入與管理 SQL Server 的權限,但經過測試,在 Replication 等某些作業上,仍然會有問題。
在 SQL Server 2008 版本,不會自動建立 BUILTIN\Administrators 管理群組,需要在安裝時指定 Windows 管理帳戶。
情境:
例如:原本是 MCTS01\Administrator ,後來電腦名稱改為 MCTS999,所以管理帳戶為:MCTS999\Administrator。
但是在 SQL Server 內,此帳戶名稱仍是原始的名稱,並沒有修改。
以下提供,修改管理者帳戶的步驟:
方法 A
比較簡單的作法是:
可以使用 SSMS 管理工具,選擇此登入帳戶,滑鼠右鍵,選擇「重新命名」。
-- 01_SSMS 管理工具,重新命名
或是,使用以下的範例程式碼:
ALTER LOGIN [原本的伺服器名稱\Administrator] WITH NAME=[更改後的伺服器名稱\Administrator] GO
以 Windows 帳戶為例,若是修改為不存在的帳戶,將遭遇以下的錯誤訊息:
-- 02_SSMS修改名稱失敗
訊息 15401,層級 16,狀態 1,行 1 找不到 Windows NT 使用者或群組 'xxx\xxx'。請再一次檢查名稱。
-- 03_修改名稱失敗之訊息
方法 B
步驟01. 確認已經啟用 sa 帳戶,並確認 sa 帳戶的密碼。
步驟02. 請先使用 sa 帳戶,連線執行「物件總管」。
步驟03. 刪除先前無效的 Windows 管理帳戶。
步驟04. 加入正確的 Windows 管理帳戶,並加入到 sysadmin 角色內。
-- 2011/01/19 更新
感謝上課學員的建議。將原先的步驟02 與 03 互換,減少發生錯誤的機會。
(3)修正 SQL Server 安裝程式為不同的 SQL Server 服務所建立使用者群組
SQL Server 安裝程式會為不同的 SQL Server 服務建立使用者群組,並依適當情況將服務帳戶加入這些使用者群組中。這些群組不僅可簡化授與執行 SQL Server 服務與其他可執行檔所需權限的過程,也有助於保護 SQL Server 檔案。例如:SQL Server 服務部分:
預設執行個體:SQLServer2005MSSQLUser$ComputerName$MSSQLSERVER
具名執行個體:SQLServer2005MSSQLUser$ComputerName$InstanceName
...
建議刪除這些群組,重新建立群組與指派權限。
在此感謝 Colin 的協助。
參考資料:
重新命名 SQL Server 作業系統的電腦名稱後之修正作業;修正 @@servername 之問題http://sharedderrick.blogspot.com/2007/11/sql-server-servername.html
如何:重新命名主控 SQL Server 2005 獨立執行個體的電腦http://technet.microsoft.com/zh-tw/library/ms143799.aspx
How to: Rename a Computer that Hosts a Stand-Alone Instance of SQL Server 2005http://msdn.microsoft.com/en-us/library/ms143799.aspx
設定 Windows 服務帳戶http://technet.microsoft.com/zh-tw/library/ms143504.aspx
Setting Up Windows Service Accountshttp://msdn.microsoft.com/en-us/library/ms143504.aspx
沒有留言:
張貼留言