設置所有可更新訂閱的同步觸發(fā)器在連接到發(fā)布服務器時所使用的配置和安全信息。此存儲過程在訂閱服務器的訂閱數(shù)據(jù)庫上執(zhí)行。
sp_link_publication [ @publisher = ] 'publisher'
, [ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication'
, [ @security_mode = ] security_mode
[ , [ @login =] 'login' ]
[ , [ @password = ] 'password' ]
[, [ @distributor = ] 'distributor' ]
[@publisher =] 'publisher'
是要鏈接到的發(fā)布服務器名。publisher 的數(shù)據(jù)類型為 sysname,無默認值。
[@publisher_db =] 'publisher_db'
是要鏈接到的發(fā)布服務器數(shù)據(jù)庫名。publisher_db 的數(shù)據(jù)類型為 sysname,無默認值。
[@publication =] 'publication'
是要鏈接到的發(fā)布名。publication 的數(shù)據(jù)類型為 sysname,無默認值。
[@security_mode =] security_mode
是鏈接到發(fā)布服務器時使用的安全模式。security_mode 的數(shù)據(jù)類型為 int,無默認值。如果為 0,則表示同步觸發(fā)器使用到發(fā)布服務器的動態(tài) RPC 連接。如果為 2,則表示同步觸發(fā)器使用靜態(tài) sysservers 項完成 RPC,而且必須在 sysservers 表內(nèi)將 publisher 定義為遠程服務器或鏈接服務器。
[ @login = ] 'login'
是登錄。login 的數(shù)據(jù)類型為 sysname,默認值為 NULL。
[@password = ] 'password'
是密碼。password 的數(shù)據(jù)類型為 sysname,默認值為 NULL。
[@distributor = ] 'distributor'
是分發(fā)服務器名。distributor 的數(shù)據(jù)類型為 sysname,默認值為 NULL。
0(成功)或 1(失?。?/P>
sp_link_publication 由快照復制和事務復制中的所有可更新訂閱使用。
sp_link_publication 既可以用于強制訂閱,也可以用于請求訂閱。在創(chuàng)建訂閱之前或之后都可以調(diào)用此過程。在 MSsubscription_properties 系統(tǒng)表內(nèi)插入或更新了一項。使用 sp_helpsubscription_properties 查看設置的值(publisher_security_mode、publisher_login、publisher_password)。
對于強制訂閱,可以使用 sp_subscription_cleanup 清除該項。對于請求訂閱,可以使用 sp_droppullsubscription 或 sp_subscription_cleanup 清除該項。出于安全考慮,也可以用 NULL 密碼調(diào)用 sp_link_publisher 以清除 MSsubscription_properties 系統(tǒng)表內(nèi)的該項。
當即時更新訂閱服務器連接到發(fā)布服務器時,它使用的默認模式不允許使用 Windows 身份驗證進行連接。若要用 Windows 身份驗證模式進行連接,必須設置到發(fā)布服務器的鏈接服務器,且即時更新訂閱服務器在更新訂閱服務器時應使用該連接。這要求 sp_link_publication 以 security_mode = 2 運行。
只有 sysadmin 固定服務器角色成員才能執(zhí)行 sp_link_publication。
相關文章