sp_link_publication(Transact-SQL)sp_link_publication (Transact-SQL)

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

즉시 업데이트 구독의 동기화 트리거가 게시자에 연결할 때 사용하는 구성 및 보안 정보를 설정합니다.Sets the configuration and security information used by synchronization triggers of immediate updating subscriptions when connecting to the Publisher. 이 저장 프로시저는 구독 데이터베이스의 구독자에서 실행됩니다.This stored procedure is executed at the Subscriber on the subscription database.

중요

게시자를 원격 배포자로 구성할 경우 job_loginjob_password를 비롯한 모든 매개 변수에 제공된 값이 일반 텍스트로 배포자에게 전송됩니다.When configuring a Publisher with a remote Distributor, the values supplied for all parameters, including job_login and job_password, are sent to the Distributor as plain text. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다.You should encrypt the connection between the Publisher and its remote Distributor before executing this stored procedure. 자세한 내용은 데이터베이스 엔진에 암호화 연결 사용(SQL Server 구성 관리자)을 참조하세요.For more information, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager).

중요

특정 조건에서 구독자에서 실행 되는 경우이 저장된 프로시저가 실패할 수 MicrosoftMicrosoft SQL Server 2005SQL Server 2005 서비스 팩 1 이상 및 게시자가 이전 버전을 실행 하는 합니다.Under certain conditions, this stored procedure can fail if the Subscriber is running MicrosoftMicrosoft SQL Server 2005SQL Server 2005 Service Pack 1 or later, and the Publisher is running an earlier version. 이 시나리오에서 저장 프로시저가 실패하면 게시자를 SQL Server 2005SQL Server 2005 서비스 팩 1 이상으로 업그레이드합니다.If the stored procedure fails in this scenario, upgrade the Publisher to SQL Server 2005SQL Server 2005 Service Pack 1 or later.

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax


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

인수Arguments

[ @publisher=] '게시자'[ @publisher= ] 'publisher'
연결 대상이 되는 게시자의 이름입니다.Is the name of the Publisher to link to. 게시자sysname, 기본값은 없습니다.publisher is sysname, with no default.

[ @publisher_db=] 'publisher_db'[ @publisher_db= ] 'publisher_db'
연결 대상이 되는 게시자 데이터베이스의 이름입니다.Is the name of the Publisher database to link to. publisher_dbsysname, 기본값은 없습니다.publisher_db is sysname, with no default.

[ @publication=] '게시'[ @publication= ] 'publication'
연결 대상이 되는 게시의 이름입니다.Is the name of the publication to link to. 게시sysname, 기본값은 없습니다.publication is sysname, with no default.

[ @security_mode=] security_mode[ @security_mode= ] security_mode
즉시 업데이트를 위해 구독자가 원격 게시자에 연결할 때 사용하는 보안 모드입니다.Is the security mode used by the Subscriber to connect to a remote Publisher for immediate updating. security_modeint, 다음이 값 중 하나일 수 있습니다.security_mode is int, and can be one of these values. 가능하면 Windows 인증을 사용하세요.When possible, use Windows Authentication.

ValueValue 설명Description
00 사용 하 여 SQL ServerSQL Server 인증으로이 저장된 프로시저에 지정 된 로그인과 로그인암호합니다.Uses SQL ServerSQL Server Authentication with the login specified in this stored procedure as login and password.

참고: 이전 버전의에서 SQL ServerSQL Server,이 옵션은 동적 원격 프로시저 호출 (RPC)을 지정 하는 데 사용 되었습니다.Note: In previous versions of SQL ServerSQL Server, this option was used to specify a dynamic remote procedure call (RPC).
11 구독자에서 변경하는 사용자의 보안 컨텍스트( SQL ServerSQL Server 인증 또는 Windows 인증)를 사용합니다.Uses the security context ( SQL ServerSQL Server Authentication or Windows Authentication) of the user making the change at the Subscriber.

참고:으로이 계정에 충분 한 권한이 있는 게시자도 있어야 합니다.Note: This account must also exist at the Publisher with sufficient privileges. Windows 인증을 사용할 때는 보안 계정 위임이 지원되어야 합니다.When using Windows Authentication, security account delegation must be supported.
22 기존의 사용자 정의 연결 된 서버 로그인 사용 하 여 만든를 사용 하 여 sp_link_publication합니다.Uses an existing, user-defined linked server login created using sp_link_publication.

[ @login=] '로그인'[ @login= ] 'login'
로그인입니다.Is the login. loginsysname이며 기본값은 NULL입니다.login is sysname, with a default of NULL. 이 매개 변수 해야 때 지정 된 security_mode0합니다.This parameter must be specified when security_mode is 0.

[ @password=] '암호'[ @password= ] 'password'
암호입니다.Is the password. 암호sysname, 기본값은 NULL입니다.password is sysname, with a default of NULL. 이 매개 변수 해야 때 지정 된 security_mode0합니다.This parameter must be specified when security_mode is 0.

[ @distributor= ] '배포자'[ @distributor= ] 'distributor'
배포자의 이름입니다.Is the name of the Distributor. 배포자sysname, 기본값은 NULL입니다.distributor is sysname, with a default of NULL.

반환 코드 값Return Code Values

0 (성공) 또는 1 (실패)0 (success) or 1 (failure)

주의Remarks

sp_link_publication 트랜잭션 복제에서 즉시 업데이트 구독에 사용 됩니다.sp_link_publication is used by immediate updating subscriptions in transactional replication.

sp_link_publication 모두 밀어넣기 및 끌어오기 구독에 사용할 수 있습니다.sp_link_publication can be used for both push and pull subscriptions. 구독을 만들기 전이나 후에 호출할 수 있습니다.It can be called before or after the subscription is created. 항목이 삽입 되거나 업데이트 됩니다는 MSsubscription_properties (TRANSACT-SQL) 시스템 테이블입니다.An entry is inserted or updated in the MSsubscription_properties (Transact-SQL) system table.

밀어넣기 구독에 대 한 항목 수에서 정리 sp_subscription_cleanup (TRANSACT-SQL)합니다.For push subscriptions, the entry can be cleaned up by sp_subscription_cleanup (Transact-SQL). 끌어오기 구독에 대 한 항목 수에서 정리 sp_droppullsubscription (TRANSACT-SQL) 또는 sp_subscription_cleanup (TRANSACT-SQL)합니다.For pull subscriptions, the entry can be cleaned up by sp_droppullsubscription (Transact-SQL) or sp_subscription_cleanup (Transact-SQL). 호출할 수도 있습니다 sp_link_publication 에 항목을 정리할 NULL 암호로 MSsubscription_properties (TRANSACT-SQL) 보안 문제에 대 한 시스템 테이블입니다.You can also call sp_link_publication with a NULL password to clear the entry in the MSsubscription_properties (Transact-SQL) system table for security concerns.

즉시 업데이트 구독자가 게시자에 연결할 때 사용하는 기본 모드에서는 Windows 인증을 사용한 연결을 사용할 수 없습니다.The default mode used by an immediate updating Subscriber when it connects to the Publisher does not allow a connection using Windows Authentication. Windows 인증 모드로 연결하려면 연결된 서버가 게시자에 설정되어 있고 즉시 업데이트 구독자가 구독자를 업데이트할 때 이 연결을 사용해야 합니다.To connect with a mode of Windows Authentication, a linked server has to be set up to the Publisher, and the immediate updating Subscriber should use this connection when updating the Subscriber. 이 위해서는 sp_link_publication 으로 실행 되도록 security_mode = 2합니다.This requires the sp_link_publication to be run with security_mode = 2. Windows 인증을 사용할 때는 보안 계정 위임이 지원되어야 합니다.When using Windows Authentication, security account delegation must be supported.

예제Example

-- 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

PermissionsPermissions

구성원만는 sysadmin 고정된 서버 역할을 실행할 수 있는 sp_link_publication합니다.Only members of the sysadmin fixed server role can execute sp_link_publication.

관련 항목:See Also

sp_droppullsubscription (TRANSACT-SQL) sp_droppullsubscription (Transact-SQL)
sp_helpsubscription_properties (TRANSACT-SQL) sp_helpsubscription_properties (Transact-SQL)
sp_subscription_cleanup (TRANSACT-SQL) sp_subscription_cleanup (Transact-SQL)
시스템 저장 프로시저(Transact-SQL)System Stored Procedures (Transact-SQL)