sp_addlogreader_agent (Transact-SQL)
データベースにログ リーダー エージェントを追加します。このストアド プロシージャは、パブリッシャ側でパブリケーション データベースについて実行されます。
セキュリティに関する注意 |
---|
リモート ディストリビュータを使用するパブリッシャを構成する場合は、job_login および job_password を含め、すべてのパラメータの指定値がプレーン テキストとしてディストリビュータに送信されます。このストアド プロシージャを実行する前に、パブリッシャとリモート ディストリビュータの間の接続を暗号化する必要があります。詳細については、「SQL Server への接続の暗号化」を参照してください。 |
構文
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 を実行してログ リーダー エージェントを追加する必要があります。
権限
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