sp_link_publication(Transact-SQL)
즉시 구독 업데이트의 동기화 트리거가 게시자에 연결할 때 사용하는 구성 및 보안 정보를 설정합니다. 이 저장 프로시저는 구독 데이터베이스의 구독자에서 실행됩니다.
보안 정보: |
---|
게시자를 원격 배포자로 구성할 경우 job_login 및 job_password를 비롯한 모든 매개 변수에 제공된 값이 일반 텍스트로 배포자에게 보내집니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다. 자세한 내용은 SQL Server 연결 암호화를 참조하십시오. |
중요: |
---|
구독자가 Microsoft SQL Server 2005 서비스 팩 1 이상을 실행하고 있으며 게시자가 이전 버전을 실행하고 있을 경우 특정 조건에서 이 저장 프로시저가 실패할 수 있습니다. 이 시나리오에서 저장 프로시저가 실패하면 게시자를 SQL Server 2005 서비스 팩 1 이상으로 업그레이드합니다. |
구문
sp_link_publication [ @publisher = ] 'publisher'
, [ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication'
, [ @security_mode = ] security_mode
[ , [ @login = ] 'login' ]
[ , [ @password = ]'password' ]
[ , [ @distributor = ] 'distributor' ]
인수
- [ @publisher = ] 'publisher'
연결 대상이 되는 게시자의 이름입니다. publisher는 sysname이며 기본값은 없습니다.
- [ @publisher_db= ] 'publisher_db'
연결 대상이 되는 게시자 데이터베이스의 이름입니다. publisher_db는 sysname이며 기본값은 없습니다.
- [ @publication= ] 'publication'
연결할 대상이 되는 게시의 이름입니다. publication은 sysname이며 기본값은 없습니다.
[ @security_mode= ] security_mode
구독자가 즉시 업데이트를 위해 원격 게시자에 연결할 때 사용하는 보안 모드입니다. security_mode는 int이며 다음 값 중 하나일 수 있습니다.값
- [ @login= ] 'login'
로그인입니다. login은 sysname이며 기본값은 NULL입니다. security_mode가 0일 때는 이 매개 변수를 지정해야 합니다.
- [ @password = ] 'password'
암호입니다. password는 sysname이며 기본값은 NULL입니다. security_mode가 0일 때는 이 매개 변수를 지정해야 합니다.
- [ @distributor= ] 'distributor'
배포자의 이름입니다. distributor는 sysname이며 기본값은 NULL입니다.
반환 코드 값
0(성공) 또는 1(실패)
주의
sp_link_publication은 트랜잭션 복제에서 즉시 구독 업데이트에 사용됩니다.
sp_link_publication은 밀어넣기 및 끌어오기 구독 모두에 대해 사용할 수 있습니다. 구독을 만들기 전이나 후에 호출할 수 있습니다. 항목은 MSsubscription_properties(Transact-SQL) 시스템 테이블에 삽입 또는 업데이트됩니다.
밀어넣기 구독의 경우 sp_subscription_cleanup(Transact-SQL)을 사용하여 항목을 정리할 수 있습니다. 끌어오기 구독의 경우에는 sp_droppullsubscription(Transact-SQL) 또는 sp_subscription_cleanup(Transact-SQL)을 사용하여 항목을 정리할 수 있습니다. 또한 보안상 NULL 암호로 sp_link_publication을 호출하여 MSsubscription_properties(Transact-SQL) 시스템 테이블의 항목을 정리할 수도 있습니다.
즉시 업데이트 구독자가 게시자에 연결할 때 사용하는 기본 모드에서는 Windows 인증을 사용한 연결을 사용할 수 없습니다. Windows 인증 모드로 연결하려면 연결된 서버가 게시자에 설정되어 있고 즉시 업데이트 구독자가 구독자를 업데이트할 때 이 연결을 사용해야 합니다. 이를 위해서는 security_mode = 2를 지정하고 sp_link_publication을 실행해야 합니다. Windows 인증을 사용할 때는 보안 계정 위임이 지원되어야 합니다.
사용 권한
sysadmin 고정 서버 역할의 멤버만 sp_link_publication을 실행할 수 있습니다.
예
-- 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'AdventureWorks';
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 AdventureWorks
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'AdventureWorksReplica';
SET @subscriber = $(SubServer);
-- At the Publisher, register the subscription, using the defaults.
USE [AdventureWorks]
EXEC sp_addsubscription
@publication = @publication,
@subscriber = @subscriber,
@destination_db = @subscriptionDB,
@subscription_type = N'pull',
@update_mode = N'failover';
GO
참고 항목
참조
sp_droppullsubscription(Transact-SQL)
sp_helpsubscription_properties(Transact-SQL)
sp_subscription_cleanup(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)