close

為了統一管理公司內部開發與測試環境的 SQL Server 執行個體與資料庫物件
先前與Byron 討論的結果是利用.net 撰寫一個小系統,再透過統一的 SQL Server 伺服器與LinkServer 遠端取得各環境的資訊。
而 LinkServer 所使用的帳號則賦予最小權限,僅供查詢資料庫物件定義及可。這樣可避免該帳號不小心修改SQL Server中的資料內容。
昨日基於管理上的考量,將集中控管的伺服器修改至另一台,因此重新建立了 LinkServer。
當利用LinkServer 執行遠端預存程序(EXEC LinkServer.databaseName.SchemaName.ProcName)發生下列錯誤訊息

--英文版錯誤訊習
Msg 7411, Level 16, State 1, Line 1
Server 'Sandy-PC\ERP' is not configured for RPC.

--中文版錯誤訊習
訊息 7411, 層級 16, 狀態 1, 行 1
並未為RPC設定伺服器'Sandy-PC\ERP'。

上了Google 拜了一下,找到了一篇相關訊息 http://www.safnet.com/writing/tech/archives/2007/06/server_myserver.html

根據他的說法,利用下列語法檢視所有伺服器的相關資訊

exec sp_HelpServer

執行結果如下圖,SANDY-PC\ERP LinkServer伺服器的 Status 果真少了 rpc,rpc out 選項設定

image

最後,在SSMS 管理工具中檢視一下稍早所建立的 LinkServer 伺服器選項(下圖),發現預設的rpc 與 rpc out 是關閉的

image

利用上圖的UI介面修改伺服器選項即可。
或者利用下列T-SQL指令修改 LinkServer 的rpc 與 rpc out 選項。

exec sp_serveroption @server='Sandy-pc\ERP', @optname='rpc', @optvalue='true'
exec sp_serveroption @server='Sandy-pc\ERP', @optname='rpc out', @optvalue='true'

使用T-SQL指令修改的好處在於,若有多個 LinkServer 需要修改,可以將語法事先撰寫好再批次修改一堆 LinkServer

arrow
arrow
    全站熱搜

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