SQL Server 以外のサブスクライバに対するサブスクリプションを作成する方法 (レプリケーション Transact-SQL プログラミング)
トランザクション レプリケーションとスナップショット レプリケーションでは、SQL Server 以外のサブスクライバに対するデータのパブリッシュがサポートされています。レプリケーション ストアド プロシージャを使用して、SQL Server 以外のサブスクライバに対するプッシュ サブスクリプションをプログラムから作成できます。サポートされるサブスクライバ プラットフォームの詳細については、「SQL Server 以外のサブスクライバー」を参照してください。
セキュリティに関する注意 |
---|
可能であれば、実行時にセキュリティ資格情報の入力を求めるメッセージを表示します。スクリプト ファイルに資格情報を格納する必要がある場合、不正なアクセスを防ぐために、ファイルをセキュリティ保護する必要があります。 |
SQL Server 以外のサブスクライバに対する、トランザクション パブリケーションまたはスナップショット パブリケーションのプッシュ サブスクリプションを作成するには
パブリッシャとディストリビュータの両方に、SQL Server 以外のサブスクライバの最新の OLE DB プロバイダをインストールします。OLE DB プロバイダのレプリケーションの要件については、「SQL Server 以外のサブスクライバー」、Oracle サブスクライバー」、「IBM DB2 サブスクライバー」を参照してください。
パブリッシャ側のパブリケーション データベースに対して sp_helppublication (Transact-SQL) を実行し、そのパブリケーションで SQL Server 以外のサブスクライバがサポートされるかどうかを確認します。
enabled_for_het_sub の値が 1 の場合、SQL Server 以外のサブスクライバがサポートされます。
enabled_for_het_sub の値が 0 の場合、@property に enabled_for_het_sub を指定し、@value に true を指定して、sp_changepublication (Transact-SQL) を実行します。
注 enabled_for_het_sub を true に変更する前に、そのパブリケーションに対する既存のサブスクリプションをすべて削除する必要があります。パブリケーションで更新サブスクリプションもサポートされる場合、enabled_for_het_sub を true に設定することはできません。enabled_for_het_sub を変更すると、他のパブリケーション プロパティにも影響します。詳細については、「SQL Server 以外のサブスクライバー」を参照してください。
パブリッシャ側のパブリケーション データベースに対して、sp_addsubscription (Transact-SQL) を実行します。@publication、@subscriber、@destination_db に (既定の転送先) の値、@subscription_type に push の値、および @subscriber_type に 3 の値 (OLE DB プロバイダを指定) を指定します。
パブリッシャ側のパブリケーション データベースに対して、sp_addpushsubscription_agent (Transact-SQL) を実行します。次の指定を行います。
@subscriber パラメータおよび @publication パラメータ。
@subscriber_db に対する (既定の転送先) の値。
@subscriber_provider、@subscriber_datasrc、 @subscriber_location、@subscriber_provider_string、および @subscriber_catalog に対応する、SQL Server 以外のデータ ソースのプロパティ。
ディストリビュータで実行するディストリビューション エージェントが使用する Microsoft Windows 資格情報。@job_login および @job_password に指定します。
注 Windows 統合認証を使用して行われる接続では、常に @job_login および @job_password で指定された Windows 資格情報が使用されます。ディストリビューション エージェントは、常に Windows 統合認証を使用してディストリビュータにローカル接続します。既定では、エージェントは Windows 統合認証を使用してサブスクライバに接続します。
@subscriber_security_mode に 0 を指定し、@subscriber_login および @subscriber_password に OLE DB プロバイダのログイン情報を指定します。
このサブスクリプションでのディストリビューション エージェント ジョブのスケジュール。詳細については、「同期スケジュールを指定する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
セキュリティに関する注意 リモート ディストリビュータを使用するパブリッシャ側でプッシュ サブスクリプションを作成する場合は、job_login および job_password を含むすべてのパラメータに指定された値がディストリビュータにプレーン テキストとして送信されます。このストアド プロシージャを実行する前に、パブリッシャとそのリモート ディストリビュータ間の接続を暗号化する必要があります。詳細については、「SQL Server への接続の暗号化」を参照してください。