적용 대상: SQL Server
Azure SQL Managed Instance
지정된 데이터베이스에 대한 로그 판독기 에이전트를 추가합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.
Important
원격 배포자를 사용하여 게시자를 구성할 때 @job_login 및 @job_password 비롯한 모든 매개 변수에 제공된 값은 일반 텍스트로 배포자로 전송됩니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다. 자세한 내용은 연결 암호화에 대한 SQL Server 데이터베이스 엔진 구성을 참조하세요.
구문
sp_addlogreader_agent
[ [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] N'publisher_login' ]
[ , [ @publisher_password = ] N'publisher_password' ]
[ , [ @publisher = ] N'publisher' ]
[ ; ]
인수
[ @job_login = ] N'job_login'
에이전트가 실행되는 Windows 계정에 대한 로그인입니다. @job_login 기본값NULL인 nvarchar(257)입니다. 이 Windows 계정은 항상 배포자에 대한 에이전트 연결에 사용됩니다. Azure SQL Managed Instance에서 SQL Server 계정을 사용합니다.
참고 항목
SQL Server가 아닌 게시자의 경우 sp_adddistpublisher 지정된 것과 동일한 로그인이어야 합니다.
[ @job_password = ] N'job_password'
에이전트가 실행되는 Windows 계정의 암호입니다. @job_password sysname이며 기본값은 .입니다NULL.
Important
스크립트 파일에 인증 정보를 저장하지 마세요. 최상의 보안을 위해 런타임에 로그인 이름 및 암호를 제공해야 합니다.
[ @job_name = ] N'job_name'
기존 에이전트 작업의 이름입니다. @job_name sysname이며 기본값은 .입니다NULL. 이 매개 변수는 에이전트가 새로 만든 작업(기본값) 대신 기존 작업을 사용하기 시작할 때만 지정됩니다.
[ @publisher_security_mode = ] publisher_security_mode
참고 항목
Microsoft Entra ID는 이전에 Azure Active Directory(Azure AD)로 알려졌습니다.
게시자에 연결할 때 에이전트에서 사용하는 보안 모드입니다. @publisher_security_mode 기본값1인 smallint입니다. SQL Server가 아닌 게시자에 대해 값을 0 지정해야 합니다. 다음 값은 보안 모드를 정의합니다.
0는 SQL Server 인증을 지정합니다.1는 Windows 인증 지정합니다.2는 SQL Server 2022(16.x) CU 6부터 Microsoft Entra 암호 인증을 지정합니다.3는 SQL Server 2022(16.x) CU 6부터 Microsoft Entra 통합 인증을 지정합니다.4는 SQL Server 2022(16.x) CU 6부터 Microsoft Entra 토큰 인증을 지정합니다.
[ @publisher_login = ] N'publisher_login'
게시자에 연결할 때 사용되는 로그인입니다. @publisher_login sysname이며 기본값은 .입니다NULL. @publisher_security_mode 경우 @publisher_login 0지정해야 합니다. @publisher_login NULL @publisher_security_mode 1경우 게시자에 연결할 때 @job_login 지정된 Windows 계정이 사용됩니다.
[ @publisher_password = ] N'publisher_password'
게시자에 연결할 때 사용되는 암호입니다. @publisher_password sysname이며 기본값은 .입니다NULL.
Important
스크립트 파일에 인증 정보를 저장하지 마세요. 최상의 보안을 위해 런타임에 로그인 이름 및 암호를 제공해야 합니다.
[ @publisher = ] N'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