다음을 통해 공유


sp_addlogreader_agent(Transact-SQL)

지정된 데이터베이스에 대해 로그 판독기 에이전트를 추가합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.

보안 정보보안 정보

게시자를 원격 배포자로 구성할 경우 job_login 및 job_password를 비롯한 모든 매개 변수에 제공된 값이 일반 텍스트로 배포자에게 보내집니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다. 자세한 내용은 SQL Server 연결 암호화를 참조하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_addlogreader_agent [ @job_login = ] 'job_login'
        , [ @job_password = ] 'job_password'
    [ , [ @job_name = ] 'job_name' ]
    [ , [ @publisher_security_mode = ] publisher_security_mode ]
    [ , [ @publisher_login = ] 'publisher_login' ]
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @publisher = ] 'publisher' ]

인수

  • [ @job_login= ] 'job_login'
    에이전트를 실행하는 Microsoft Windows 계정의 로그인입니다. job_login은 nvarchar(257)이며 기본값은 NULL입니다. 이 Windows 계정은 에이전트가 배포자에 연결할 때 항상 사용됩니다.

    [!참고]

    비-MicrosoftSQL Server 게시자의 경우 sp_adddistpublisher(Transact-SQL)에 지정된 동일한 로그인이어야 합니다.

  • [ @job_password= ] 'job_password'
    에이전트를 실행하는 Windows 계정의 암호입니다. job_password는 sysname이며 기본값은 NULL입니다.

    보안 정보보안 정보

    스크립트 파일에 인증 정보를 저장하지 않도록 합니다. 최상의 보안을 위해 런타임에 로그인 이름과 암호를 제공해야 합니다.

  • [ @job_name= ] 'job_name'
    기존 에이전트 작업의 이름입니다. job_name은 sysname이며 기본값은 NULL입니다. 이 매개 변수는 에이전트가 새로 만든 작업(기본값) 대신 기존 작업을 사용하여 시작된 경우에만 지정됩니다.

  • [ @publisher_security_mode= ] publisher_security_mode
    게시자에 연결할 때 에이전트가 사용하는 보안 모드입니다. publisher_security_mode는 smallint이며 기본값은 1입니다. 0은 SQL Server 인증을 지정하고 1은 Windows 인증을 지정합니다. 비-SQL Server 게시자에 대해 0값을 지정해야 합니다.

  • [ @publisher_login= ] 'publisher_login'
    게시자에 연결할 때 사용되는 로그인입니다. publisher_login은 sysname이며 기본값은 NULL입니다. publisher_security_mode가 0인 경우 publisher_login을 지정해야 합니다. publisher_login이 NULL이고 publisher_security_mode가 1이면 게시자에 연결할 때 job_login에 지정된 Windows 계정이 사용됩니다.

  • [ @publisher_password= ] 'publisher_password'
    게시자에 연결할 때 사용되는 암호입니다. publisher_password는 sysname이며 기본값은 NULL입니다.

    보안 정보보안 정보

    스크립트 파일에 인증 정보를 저장하지 않도록 합니다. 최상의 보안을 위해 런타임에 로그인 이름과 암호를 제공해야 합니다.

  • [ @publisher = ] 'publisher'
    SQL Server 이외 게시자의 이름입니다. publisher는 sysname이며 기본값은 NULL입니다.

    [!참고]

    SQL Server 게시자에 이 매개 변수를 지정하지 않습니다.

반환 코드 값

0(성공) 또는 1(실패)

주의

sp_addlogreader_agent는 트랜잭션 복제에 사용됩니다.

복제에 대해 설정된 데이터베이스를 이 버전의 SQL Server로 업그레이드한 후 이 데이터베이스를 사용한 게시를 만든 경우 로그 판독기 에이전트를 추가하려면 sp_addlogreader_agent를 실행해야 합니다.

사용 권한

sysadmin 고정 서버 역할의 멤버 또는 db_owner 고정 데이터베이스 역할의 멤버만 sp_addlogreader_agent를 실행할 수 있습니다.

-- To avoid storing the login and password in the script file, the values 
-- are passed into SQLCMD as scripting variables. 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".

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksProductTran'; 
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login); 
-- This should be passed at runtime.
SET @password = $(Password); 

-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- Execute sp_addlogreader_agent to create the agent job. 
EXEC sp_addlogreader_agent 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;

-- Create a new transactional publication with the required properties. 
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_push = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true';

-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;
GO