SqlServer 無法為可更新的訂閱設置發布服務器登錄名 sp_link_publication
阿新 • • 發佈:2018-01-26
link 新的 rom publish 名稱 其他 警告 啟用 rop 原文:SqlServer 無法為可更新的訂閱設置發布服務器登錄名 sp_link_publication
發現警告中提示的數據庫用戶(repllinkproxy)是孤立的,也就是沒有關聯到本地的登錄賬戶(repllinkproxy)
若出現以下錯誤:
沒有截圖:
創建可更新訂閱,正常創建了發布,在訂閱端創建訂閱,最後一步提示完成,卻出現了警告:
無法為可更新的訂閱設置發布服務器登錄名。可能需要使用 sp_link_publication 直接在訂閱服務器計算機上設置它。
突然想起來這個發布和訂閱的數據庫都是其他庫還原過來的,應該是賬號問題:
在發布數據庫和訂閱數據庫都執行:
-- 查看孤立數據庫用戶 exec sp_change_users_login @Action='Report';
發現警告中提示的數據庫用戶(repllinkproxy)是孤立的,也就是沒有關聯到本地的登錄賬戶(repllinkproxy)
--數據庫用戶關聯到sql server登錄名 exec sp_change_users_login @action='update_one', @usernamepattern='repllinkproxy', @loginname='repllinkproxy'; go
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
還有一種方法:
在創建訂閱的最後一步,使用現有的連接服務器名稱作為連接,也可能有上面的錯誤提示!
解決方法是在訂閱服務器中執行以下腳本設置連接安全信息:
exec sp_link_publication @publisher = 'publisher' , @publisher_db = 'publisher_db' , @publication = 'publication' , @security_mode = security_mode
若出現以下錯誤:
鏈接服務器"DB"的 OLE DB 訪問接口 "SQLNCLI10" 返回了消息 "該事務管理器已經禁止了它對遠程/網絡事務的支持。"。
消息 7391,級別 16,狀態 2,第 1 行
無法執行該操作,因為鏈接服務器 "DB" 的 OLE DB 訪問接口 "SQLNCLI10" 無法啟動分布式事務。
解決方法是:右鍵服務器鏈接,在服務器選項中,把 “為RPC啟用針對分布式事務的升級” 改為 “false”,再重新執行上面的語句。或者sql腳本執行
USE [master] GO EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'remote proc transaction promotion', @optvalue=N'False' GO
SqlServer 無法為可更新的訂閱設置發布服務器登錄名 sp_link_publication