Share via


sp_link_publication (Transact-sql)

Yayımcı için bağlanırken hemen güncelleştirme abonelikleri eşitleme Tetikleyiciler tarafından kullanılan yapılandırma ve güvenlik bilgilerini ayarlar. Bu saklı yordam, abonelik veritabanı abone adresindeki yürütülür.

Güvenlik notuGüvenlik Notu

Bir Publisher ile sağlanan tüm parametreler için değerler uzak bir dağıtımcı yapılandırma dahil job_loginve job_password, dağıtımcı düz metin olarak gönderilir. Bu saklı yordam yürütme önce Publisher ve kendi uzak dağıtımcı arasında bağlantı şifrelemek. Daha fazla bilgi için, bkz. Veritabanı altyapısı (SQL Server Configuration Manager) şifreli bağlantıları etkinleştir.

Önemli notÖnemli

Abone çalışıyorsa, belirli koşullar altında Bu saklı yordam başarısız olabilir Microsoft SQL Server 2005Service Pack 1 veya üstü ve Publisher önceki bir sürümü çalışıyor. Bu senaryoda saklı yordamı başarısız olursa yayımcı için yükseltme SQL Server 2005Service Pack 1 veya sonrası.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

sp_link_publication [ @publisher = ] 'publisher' 
        , [ @publisher_db = ] 'publisher_db' 
        , [ @publication = ] 'publication' 
        , [ @security_mode = ] security_mode
    [ , [ @login = ] 'login' ]
    [ , [ @password = ]'password' ]
    [ , [ @distributor = ] 'distributor' ]

Bağımsız değişkenler

  • @ publisher=] 'Yayınevi'
    Bağlantı için yayımcı addır. Yayıncı olan sysname, hiçbir varsayılan ile.

  • @ publisher_db=] 'publisher_db @'
    Bağlantı için Publisher veritabanı adıdır. publisher_db @ olan sysname, hiçbir varsayılan ile.

  • @ yayın=] 'yayın'
    Bağlantı için Yayını addır. Yayın olan sysname, hiçbir varsayılan ile.

  • @ security_mode=] security_mode
    Abone tarafından hemen güncelleştirmek için bir uzak yayımcı bağlanmak için kullanılan güvenlik modu. security_mode olan int, ve bu değerlerden biri olabilir. Mümkünse Windows Kimlik Doğrulaması kullanın.

    Değer

    Açıklama

    0

    Kullandığı SQL ServerBu saklı yordam oturum açma kimlik doğrulaması belirtilen giriş ve parola.

    NotNot
    Önceki sürümlerinde SQL Server, bu seçenek dinamik uzaktan yordam çağrısı (rpc) belirtmek için kullanılır.

    1

    Güvenlik bağlamını kullanır ( SQL Server kimlik doğrulaması veya Windows kimlik doğrulaması) abone değişiklik kullanıcının.

    NotNot
    Bu hesap, ayrıca yeterli ayrıcalıklara sahip yayımcı bulunmalıdır.Windows kimlik doğrulaması kullanırken, güvenlik hesabını temsilci seçme desteklenmelidir.

    2

    Kullanılarak oluşturulan bir varolan, kullanıcı tanımlı bağlantılı sunucu oturumu kullanır sp_link_publication.

  • @login= ] 'giriş'
    Oturum açma 's. Giriş olan sysname, null varsayılan. Bu parametre olmalıdır ne zaman belirtilen security_mode olan 0.

  • @password= ] 'parola'
    Parola değil. parola olan sysname, null varsayılan. Bu parametre olmalıdır ne zaman belirtilen security_mode olan 0.

  • Dağıtıcı = 'Dağıtıcı'
    Dağıtımcı adıdır. Dağıtıcı olan sysname, null varsayılan.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Açıklamalar

sp_link_publication hemen güncelleştirme abonelikleri işlem çoğaltma tarafından kullanılır.

sp_link_publication itme ve çekme abonelikleri için kullanılabilir. Önce veya abonelik oluşturulduktan sonra çağrılabilir. Girişe eklenen ya da güncellenen MSsubscription_properties (Transact-sql)sistem tablosu.

Itme abonelikleri için giriş tarafından temizlenebilir sp_subscription_cleanup (Transact-sql). Çekme abonelikleri için giriş tarafından temizlenebilir sp_droppullsubscription (Transact-sql)ya sp_subscription_cleanup (Transact-sql). Sen-ebilmek seslenmek de sp_link_publication girişi silmek için boş parola ile MSsubscription_properties (Transact-sql)sistem tablosu güvenlik endişeleri.

Yayımcı bağlandığında hemen bir güncelleştirme abone tarafından kullanılan varsayılan modu, Windows kimlik doğrulaması kullanarak bağlantı izin vermez. Windows kimlik doğrulaması modu ile bağlanmak için bağlantılı bir sunucu için yayımcı ayarlanması vardır ve hemen güncelleştirme abone abone güncelleştirilirken Bu bağlantı kullanmanız gerekir. Bu gerektirir sp_link_publication ile çalışmak üzere security_mode = 2. Windows kimlik doğrulaması kullanırken, güvenlik hesabını temsilci seçme desteklenmelidir.

Örnek

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS nvarchar(512);
SET @publication = N'AdvWorksProductTran';
SET @publicationDB = N'AdventureWorks2012';
SET @publisher = $(PubServer);
SET @login = $(Login);
SET @password = $(Password);

-- At the subscription database, create a pull subscription to a transactional 
-- publication using immediate updating with queued updating as a failover.
EXEC sp_addpullsubscription 
    @publisher = @publisher, 
    @publication = @publication, 
    @publisher_db = @publicationDB, 
    @update_mode = N'failover', 
    @subscription_type = N'pull';

-- Add an agent job to synchronize the pull subscription, 
-- which uses Windows Authentication when connecting to the Distributor.
EXEC sp_addpullsubscription_agent 
    @publisher = @publisher, 
    @publisher_db = @publicationDB, 
    @publication = @publication,
    @job_login = @login,
    @job_password = @password; 

-- Add a Windows Authentication-based linked server that enables the 
-- Subscriber-side triggers to make updates at the Publisher. 
EXEC sp_link_publication 
    @publisher = @publisher, 
    @publication = @publication,
    @publisher_db = @publicationDB, 
    @security_mode = 0,
    @login = @login,
    @password = @password;
GO

USE AdventureWorks2012
GO

-- Execute this batch at the Publisher.
DECLARE @publication AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @subscriber AS sysname;
SET @publication = N'AdvWorksProductTran'; 
SET @subscriptionDB = N'AdventureWorks2012Replica'; 
SET @subscriber = $(SubServer);

-- At the Publisher, register the subscription, using the defaults.
USE [AdventureWorks2012]
EXEC sp_addsubscription 
    @publication = @publication, 
    @subscriber = @subscriber, 
    @destination_db = @subscriptionDB, 
    @subscription_type = N'pull', 
    @update_mode = N'failover';
GO

İzinler

Yalnızca üyeleri sysadmin sabit sunucu rolü yürütebilirsiniz sp_link_publication.

Ayrıca bkz.

Başvuru

sp_droppullsubscription (Transact-sql)

sp_helpsubscription_properties (Transact-sql)

sp_subscription_cleanup (Transact-sql)

Sistem saklı yordamları (Transact-sql)