Share via


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 アカウントはディストリビューターへのエージェント接続で常に使用されます。

    注意

    Microsoft SQL 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 を実行してログ リーダー エージェントを追加する必要があります。

権限

sp_addlogreader_agent を実行できるのは、sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバーだけです。

使用例

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

関連項目

参照

sp_addpublication (Transact-SQL)

sp_changelogreader_agent (Transact-SQL)

レプリケーション ストアド プロシージャ (Transact-SQL)

概念

パブリケーションの作成