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'AdventureWorks2008R2'; 
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