レプリケーションのセキュリティ設定を表示および変更する方法 (レプリケーション Transact-SQL プログラミング)
レプリケーションに必要なセキュリティ アカウント設定 (ログインとパスワード) は、パブリケーションおよびサブスクリプションの作成時に定義されます。これらの設定は、レプリケーション ストアド プロシージャを使用して後で変更できます。使用するストアド プロシージャは、エージェントの種類およびサーバー接続の種類によって異なります。
メモ : |
---|
セキュリティ上の理由から、レプリケーション ストアド プロシージャによって返される結果セットでは、パスワードの実際の値はマスクされます。 |
セキュリティ メモ : |
---|
可能な限り、次のすべての手順で、実行時にセキュリティ資格情報を入力するように求めるメッセージをユーザーに表示します。スクリプト ファイルに資格情報を格納する場合は、不正アクセスを防ぐために、そのファイルをセキュリティで保護する必要があります。 |
レプリケーション サーバーに格納されたパスワードのインスタンスをすべて変更するには
レプリケーション トポロジ内のサーバーの master データベースで、sp_changereplicationserverpasswords を実行します。@login に、パスワードを変更する Microsoft Windows アカウントまたは Microsoft SQL Server ログインを指定し、@password に、そのアカウントまたはログインの新しいパスワードを入力します。これにより、トポロジ内の他のサーバーに接続すると、サーバーのすべてのエージェントで使用されるパスワードの各インスタンスが変更されます。
メモ : ディストリビュータやサブスクライバなど、トポロジ内の特定のサーバーへの接続に対するログインおよびパスワードのみを変更するには、@server にサーバーの名前を指定します。 パスワードの更新が必要なレプリケーション トポロジ内の各サーバーで手順 1. を繰り返します。
メモ : レプリケーション パスワードを変更したら、そのパスワードを使用する各エージェントを停止して再起動し、エージェントに対して変更を反映する必要があります。
スナップショット エージェントのセキュリティ設定を変更するには
パブリッシャで、@publication を指定して sp_helppublication_snapshot を実行します。これにより、スナップショット エージェントの現在のセキュリティ設定が返されます。
パブリッシャで、@publication を指定し、次のセキュリティ設定から変更するものを 1 つ以上指定して、sp_changepublication_snapshot を実行します。
- エージェントの実行時に使用する Windows アカウント、またはこのアカウントのパスワードだけを変更するには、@job_login および @job_password を指定します。
- パブリッシャへの接続時に使用するセキュリティ モードを指定するには、@publisher_security_mode に 1 または 0 を指定します。
- パブリッシャへの接続時に使用するセキュリティ モードを 1 から 0 に変更する場合、またはこの接続に使用する SQL Server ログインを変更する場合は、@publisher_login および @publisher_password を指定します。
セキュリティ メモ : リモート ディストリビュータを使用してパブリッシャを構成する場合、job_login および job_password を含め、すべてのパラメータの値がディストリビュータにプレーン テキストとして送信されます。このストアド プロシージャを実行する前に、パブリッシャとそのリモート ディストリビュータ間の接続を暗号化する必要があります。詳細については、「SQL Server への接続の暗号化」を参照してください。
ログ リーダー エージェントのセキュリティ設定を変更するには
パブリッシャで、@publisher を指定して sp_helplogreader_agent を実行します。これにより、ログ リーダー エージェントの現在のセキュリティ設定が返されます。
パブリッシャで、@publication を指定し、次のセキュリティ設定から変更するものを 1 つ以上指定して、sp_changelogreader_agent を実行します。
- エージェントの実行時に使用する Windows アカウント、またはこのアカウントのパスワードだけを変更するには、@job_login および @job_password を指定します。
- パブリッシャへの接続時に使用するセキュリティ モードを指定するには、@publisher_security_mode に 1 または 0 を指定します。
- パブリッシャへの接続時に使用するセキュリティ モードを 1 から 0 に変更する場合、またはこの接続に使用する SQL Server ログインを変更する場合は、@publisher_login および @publisher_password を指定します。
メモ : エージェントのログインまたはパスワードを変更した後、変更を有効にするには、エージェントを停止して再起動する必要があります。 セキュリティ メモ : リモート ディストリビュータを使用してパブリッシャを構成する場合、job_login および job_password を含め、すべてのパラメータの値がディストリビュータにプレーン テキストとして送信されます。このストアド プロシージャを実行する前に、パブリッシャとそのリモート ディストリビュータ間の接続を暗号化する必要があります。詳細については、「SQL Server への接続の暗号化」を参照してください。
プッシュ サブスクリプションに対するディストリビューション エージェントのセキュリティ設定を変更するには
パブリッシャのパブリケーション データベースで、@publication および @subscriber を指定して、sp_helpsubscription を実行します。これにより、ディストリビュータで実行されるディストリビューション エージェントのセキュリティ設定を含むサブスクリプションのプロパティが返されます。
パブリッシャのパブリケーション データベースで、sp_changesubscription を実行します。@publication、@subscriber、および @subscriber_db を指定し、@article に all を、@property にセキュリティ プロパティの名前を、@value にプロパティの新しい値を指定します。
次のセキュリティ プロパティから変更するものに対してそれぞれ手順 2. を繰り返します。
- エージェントの実行時に使用する Windows アカウントまたはそのアカウントのパスワードだけを変更するには、@property に distrib_job_password を、@value に新しいパスワードを指定します。アカウント自体を変更する場合は、@property に distrib_job_login を、@value に新しい Windows アカウントを指定して、手順 2. を繰り返します。
- サブスクライバへの接続時に使用するセキュリティ モードを変更するには、@property に subscriber_security_mode を、@value に 1 (Windows 統合認証) または 0 (SQL Server 認証) を指定します。
- サブスクライバのセキュリティ モードを SQL Server 認証に変更する場合、または SQL Server 認証のログイン情報を変更する場合は、@property に subscriber_password を、@value に新しいパスワードを指定します。@property に subscriber_login を、@value に新しいログインを指定して、手順 2. を繰り返します。
メモ : エージェントのログインまたはパスワードを変更した後、変更を有効にするには、エージェントを停止して再起動する必要があります。 セキュリティ メモ : リモート ディストリビュータを使用してパブリッシャを構成する場合、distrib_job_login および distrib_job_password を含め、すべてのプロパティの値がディストリビュータにプレーン テキストとして送信されます。このストアド プロシージャを実行する前に、パブリッシャとそのリモート ディストリビュータ間の接続を暗号化する必要があります。詳細については、「SQL Server への接続の暗号化」を参照してください。
プル サブスクリプションに対するディストリビューション エージェントのセキュリティ設定を変更するには
サブスクライバで、@publication を指定して sp_helppullsubscription を実行します。これにより、サブスクライバで実行されるディストリビューション エージェントのセキュリティ設定を含むサブスクリプションのプロパティが返されます。
サブスクライバのサブスクリプション データベースで、@publisher、@publisher_db、および @publication を指定し、@property にセキュリティ プロパティの名前を、@value に新しいプロパティの値を指定して、sp_change_subscription_properties を実行します。
次のセキュリティ プロパティから変更するものに対してそれぞれ手順 2. を繰り返します。
- エージェントの実行時に使用する Windows アカウントまたはそのアカウントのパスワードだけを変更するには、@property に distrib_job_password を、@value に新しいパスワードを指定します。アカウント自体を変更する場合は、@property に distrib_job_login を、@value に新しい Windows アカウントを指定して、手順 2. を繰り返します。
- ディストリビュータへの接続時に使用するセキュリティ モードを変更するには、@property に distributor_security_mode を、@value に 1 (Windows 統合認証) または 0 (SQL Server 認証) を指定します。
- ディストリビュータのセキュリティ モードを SQL Server 認証に変更する場合、または SQL Server 認証のログイン情報を変更する場合は、@property に distributor_password を、@value に新しいパスワードの値を指定します。@property に distributor_login を、@value に新しいログインを指定して、手順 2. を繰り返します。
メモ : エージェントのログインまたはパスワードを変更した後、変更を有効にするには、エージェントを停止して再起動する必要があります。
プッシュ サブスクリプションに対するマージ エージェントのセキュリティ設定を変更するには
パブリッシャのパブリケーション データベースで、@publication、@subscriber、および @subscriber_db を指定して、sp_helpmergesubscription を実行します。これにより、ディストリビュータで実行されるマージ エージェントのセキュリティ設定を含むサブスクリプションのプロパティが返されます。
パブリッシャのパブリケーション データベースで、@publication、@subscriber、および @subscriber_db を指定し、@property にセキュリティ プロパティの名前を、@value にプロパティの新しい値を指定して、sp_changemergesubscription を実行します。
次のセキュリティ プロパティから変更するものに対してそれぞれ手順 2. を繰り返します。
- エージェントの実行時に使用する Windows アカウントまたはそのアカウントのパスワードだけを変更するには、@property に merge_job_password を、@value に新しいパスワードを指定します。アカウント自体を変更する場合は、@property に merge_job_login を、@value に新しい Windows アカウントを指定して、手順 2. を繰り返します。
- サブスクライバへの接続時に使用するセキュリティ モードを変更するには、@property に subscriber_security_mode を、@value に 1 (Windows 統合認証) または 0 (SQL Server 認証) を指定します。
- サブスクライバのセキュリティ モードを SQL Server 認証に変更する場合、または SQL Server 認証のログイン情報を変更する場合は、@property に subscriber_password を、@value に新しいパスワードを指定します。@property に subscriber_login を、@value に新しいログインを指定して、手順 2. を繰り返します。
- パブリッシャへの接続時に使用するセキュリティ モードを変更するには、@property に publisher_security_mode を、@value に 1 (Windows 統合認証) または 0 (SQL Server 認証) を指定します。
- パブリッシャのセキュリティ モードを SQL Server 認証に変更する場合、または SQL Server 認証のログイン情報を変更する場合は、@property に publisher_password を、@value に新しいパスワードの値を指定します。@property に publisher_login を、@value に新しいログインを指定して、手順 2. を繰り返します。
メモ : エージェントのログインまたはパスワードを変更した後、変更を有効にするには、エージェントを停止して再起動する必要があります。 セキュリティ メモ : リモート ディストリビュータを使用してパブリッシャを構成する場合、merge_job_login および merge_job_password を含め、すべてのプロパティの値がディストリビュータにプレーン テキストとして送信されます。このストアド プロシージャを実行する前に、パブリッシャとそのリモート ディストリビュータ間の接続を暗号化する必要があります。詳細については、「SQL Server への接続の暗号化」を参照してください。
プル サブスクリプションに対するマージ エージェントのセキュリティ設定を変更するには
サブスクライバで、@publication を指定して、sp_helpmergepullsubscription を実行します。これにより、サブスクライバで実行されるマージ エージェントのセキュリティ設定を含むサブスクリプションのプロパティが返されます。
サブスクライバのサブスクリプション データベースで、@publisher、@publisher_db、および @publication を指定し、@property にセキュリティ プロパティの名前を、@value に新しいプロパティの値を指定して、sp_change_subscription_properties を実行します。
次のセキュリティ プロパティから変更するものに対してそれぞれ手順 2. を繰り返します。
- エージェントの実行時に使用する Windows アカウントまたはそのアカウントのパスワードだけを変更するには、@property に merge_job_password を、@value に新しいパスワードを指定します。アカウント自体を変更する場合は、@property に merge_job_login を、@value に新しい Windows アカウントを指定して、手順 2. を繰り返します。
- ディストリビュータへの接続時に使用するセキュリティ モードを変更するには、@property に distributor_security_mode を、@value に 1 (Windows 統合認証) または 0 (SQL Server 認証) を指定します。
- ディストリビュータのセキュリティ モードを SQL Server 認証に変更する場合、または SQL Server 認証のログイン情報を変更する場合は、@property に distributor_password を、@value に新しいパスワードの値を指定します。@property に distributor_login を、@value に新しいログインを指定して、手順 2. を繰り返します。
- パブリッシャへの接続時に使用するセキュリティ モードを変更するには、@property に publisher_security_mode を、@value に 1 (Windows 統合認証) または 0 (SQL Server 認証) を指定します。
- パブリッシャのセキュリティ モードを SQL Server 認証に変更する場合、または SQL Server 認証のログイン情報を変更する場合は、@property に publisher_password を、@value に新しいパスワードの値を指定します。@property に publisher_login を、@value に新しいログインを指定して、手順 2. を繰り返します。
メモ : エージェントのログインまたはパスワードを変更した後、変更を有効にするには、エージェントを停止して再起動する必要があります。
サブスクライバのフィルタ選択されたスナップショットを生成する、スナップショット エージェントのセキュリティ設定を変更するには
パブリッシャで、@publication を指定して、sp_helpdynamicsnapshot_job を実行します。結果セットで、変更するサブスクライバのパーティションの job_name の値を確認します。
パブリッシャで、@publication を指定し、@dynamic_snapshot_jobname に手順 1. で取得した値を、@job_password に新しい値を、または**@job_login** および @job_password にエージェント実行時に使用する Windows アカウントのログインおよびパスワードを指定して、sp_changedynamicsnapshot_job を実行します。
セキュリティ メモ : リモート ディストリビュータを使用してパブリッシャを構成する場合、job_login および job_password を含め、すべてのパラメータの値がディストリビュータにプレーン テキストとして送信されます。このストアド プロシージャを実行する前に、パブリッシャとそのリモート ディストリビュータ間の接続を暗号化する必要があります。詳細については、「SQL Server への接続の暗号化」を参照してください。
キュー リーダー エージェントのセキュリティ設定を変更するには
ディストリビュータで、sp_helpqreader_agent を実行します。これにより、キュー リーダー エージェントの実行時に使用される現在の Windows アカウントが返されます。
- ディストリビュータで、@job_login および @job_password に Windows アカウント設定を指定して、sp_changeqreader_agent を実行します。
メモ : エージェントのログインまたはパスワードを変更した後、変更を有効にするには、エージェントを停止して再起動する必要があります。ディストリビューション データベースには、それぞれ 1 つのキュー リーダー エージェントがあります。エージェントのセキュリティ設定を変更すると、このディストリビューション データベースを使用するすべてのパブリッシャのすべてのパブリケーションの設定に影響が及びます。 キュー リーダー エージェントは、サブスクリプションのディストリビューション エージェントと同じ接続コンテキストを使用して、サブスクライバへの接続を作成します。
パブリッシャへの接続時に即時更新サブスクライバで使用するセキュリティ モードを変更するには
サブスクライバ側のサブスクリプション データベースに対して、sp_link_publication を実行します。@publisher および @publication を指定し、@publisher_db にパブリケーション データベースの名前を、@security_mode に次のいずれかの値を指定します。
- 0 - パブリッシャで更新を作成する場合に SQL Server 認証を使用します。このオプションの場合、パブリッシャで、@login および @password に有効なログインを指定する必要があります。
- 1 - パブリッシャへの接続時にサブスクライバで変更するユーザーのセキュリティ コンテキストを使用します。このセキュリティ モードに関連する制限の詳細については、sp_link_publication のトピックを参照してください。
- 2 - sp_addlinkedserver (Transact-SQL) を使って作成された、既存のユーザー定義されたリンク サーバー ログインを使用します。
リモート ディストリビュータのパスワードを変更するには
ディストリビュータのディストリビューション データベースで、@password にこのログインの新しいパスワードを指定して、sp_changedistributor_password を実行します。
重要 : distributor_admin のパスワードを直接変更しないでください。 このリモート ディストリビュータを使用する各パブリッシャで、@password に手順 1. のパスワードを指定して、sp_changedistributor_password を実行します。
参照
処理手順
レプリケーション スクリプトをアップグレードする方法 (レプリケーション Transact-SQL プログラミング)
概念
システム ストアド プロシージャを使用したレプリケーションのプログラミング
その他の技術情報
レプリケーションのセキュリティ設定を表示および変更する方法 (SQL Server Management Studio)
レプリケーションのログインとパスワードの管理
レプリケーション エージェントのセキュリティ モデル
レプリケーションのセキュリティに関する注意点