sys.sp_link_publication (Transact-SQL)

Şunlar için geçerlidir: SQL Server

Publisher'a bağlanırken abonelikleri hemen güncellemenin senkronizasyon tetikleyicileri tarafından kullanılan yapılandırma ve güvenlik bilgilerini ayarlar. Bu saklanan prosedür, abonelik veritabanındaki Abone'de yürütülür.

Important

Bir Publisher uzak Dağıtıcı ile yapılandırdığınızda, @job_login ve @job_password dahil tüm parametreler için sağlanan değerler Dağıtıcıya düz metin olarak gönderilir. Bu saklı yordamı yürütmeden önce Yayımcı ile uzak Dağıtımcı arasındaki bağlantıyı şifrelemeniz gerekir. Daha fazla bilgi için bkz. Bağlantıları şifrelemek için SQL Server Veritabanı Altyapısını yapılandırma.

Transact-SQL söz dizimi kuralları

Syntax

sys.sp_link_publication
    [ @publisher = ] N'publisher'
    , [ @publisher_db = ] N'publisher_db'
    , [ @publication = ] N'publication'
    , [ @security_mode = ] security_mode
    [ , [ @login = ] N'login' ]
    [ , [ @password = ] N'password' ]
    [ , [ @distributor = ] N'distributor' ]
[ ; ]

Arguments

[ @publisher = ] N'publisher'

Bağlantı verilecek Publisher'ın adı. @publishersysname'dir ve varsayılan değer yoktur.

[ @publisher_db = ] N'publisher_db'

Bağlantı verilecek Publisher veritabanının adı. @publisher_dbsysname'dir, varsayılan yoktur.

[ @publication = ] Yayın yok'

Bağlantı verilecek yayının adı. @publicationsysname'dir, varsayılan yoktur.

[ @security_mode = ] security_mode

Abonenin uzaktan bir Publisher'a bağlanmak için kullandığı güvenlik modu. @security_modeve bu değerlerden biri olabilir. Mümkün olduğunda Windows kimlik doğrulamayı kullanın.

Value Description
0 Bu kayıtlı prosedürde belirtilen giriş SQL Server @login ve @password ile Kimlik Doğrulama kullanır.

Not: SQL Server'ın önceki sürümlerinde bu seçenek, dinamik bir uzaktan prosedür çağrısı (RPC) belirtmek için kullanılıyordu.
1 Abone üzerinde değişiklik yapan kullanıcının güvenlik bağlamını (SQL Server Doğrulama veya Windows Doğrulama) kullanır.

Not: Bu hesap ayrıca Publisher'da yeterli ayrıcalıklara sahip olmalıdır. Windows Kimlik Doğrulaması kullandığınızda, güvenlik hesabı delegasyonu desteklenmelidir.
2 Mevcut ve kullanıcı tanımlı bağlantılı sunucu girişini kullanır sp_link_publication.

[ @login = ] N'login'

Oturum açma. @loginsysname değeridir ve varsayılan değeri .NULL Bu parametre, @security_mode0olduğunda belirtilmelidir.

[ @password = ] N'parola'

Parola. @passwordsysname değeridir ve varsayılan değeri .NULL Bu parametre, @security_mode0olduğunda belirtilmelidir.

[ @distributor = ] N'distributor'

Dağıtıcının adı. @distributorsysname'dir ve varsayılan olarak boş bir dizedir.

Dönüş kodu değerleri

0 (başarı) veya 1 (başarısızlık).

Remarks

sp_link_publication İşlemsel çoğaltmada aboneliklerin anında güncellenmesiyle kullanılır.

sp_link_publication Hem push hem de pull abonelikleri için kullanılabilir. Abonelik oluşturulmadan önce veya sonra çağrılabilir. Bir giriş MSsubscription_properties sistem tablosuna eklenir veya güncellenir.

Push aboneliklerinde ise giriş sp_subscription_cleanup tarafından temizlenebilir. Pull aboneliklerde ise giriş sp_droppullsubscription veya sp_subscription_cleanup tarafından temizlenebilir. Güvenlik endişeleri nedeniyle sp_link_publication sistem tablosundan giriş kaydını temizlemek için şifreyle NULL de arayabilirsiniz.

Abonenin Publisher'a bağlandığında anında güncellenen varsayılan mod, Windows Kimlik Doğrulaması ile bağlantıya izin vermez. Windows Kimlik Doğrulama moduna bağlanmak için, Publisher'a bağlı bir sunucu kurulmalıdır ve hemen güncellenen Abone, Aboneyi güncellerken bu bağlantıyı kullanmalıdır. Bu, sp_link_publication ayarlanarak 2çalıştırılmasını gerektirir. Windows Kimlik Doğrulaması kullandığınızda, güvenlik hesabı delegasyonu desteklenmelidir.

Examples

-- 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'AdventureWorks2022';
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 AdventureWorks2022;
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'AdventureWorks2022Replica'; 
SET @subscriber = $(SubServer);

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

Permissions

yalnızca sysadmin sabit sunucu rolünün üyeleri yürütebilir sp_link_publication.