レプリケーション エージェントのセキュリティ モデル

更新 : 2006 年 12 月 12 日

レプリケーション エージェントのセキュリティ モデルを使用すると、レプリケーション エージェントを実行して接続するアカウントをきめ細かく制御できます。エージェントごとに異なるアカウントを指定できます。アカウントを指定する方法の詳細については、「レプリケーションのログインとパスワードの管理」を参照してください。

ms151868.note(ja-jp,SQL.90).gif重要 :
sysadmin 固定サーバー ロールのメンバがレプリケーションを構成する際には、SQL Server エージェント アカウントの権限を借用するようにレプリケーション エージェントを構成できます。このとき、レプリケーション エージェントのログインとパスワードを指定する必要はありませんが、その方法はお勧めしません。セキュリティ上、このトピックの「エージェントに必要な権限」に記載されている最小限の権限を持った各エージェントのアカウントを指定することをお勧めします。

レプリケーション エージェントは、他の実行可能プログラムと同様に、Windows アカウントのコンテキストで実行されます。このアカウントを使用して、Windows 統合セキュリティ接続が作成されます。エージェントを実行するアカウントは、エージェントの開始方法で決まります。

  • SQL Server エージェント ジョブからエージェントを開始する (既定) : SQL Server エージェント ジョブを使用してレプリケーション エージェントを開始すると、エージェントはレプリケーションを構成するときに指定したアカウントのコンテキストで実行されます。SQL Server エージェントおよびレプリケーションの詳細については、このトピックの「SQL Server エージェントのエージェント セキュリティ」を参照してください。SQL Server エージェントを実行するアカウントに必要な権限の詳細については、「SQL Server エージェントの構成」を参照してください。
  • MS-DOS コマンド ラインから直接、またはスクリプトによってエージェントを開始する : エージェントは、コマンド ラインでエージェントを実行しているユーザーのアカウントのコンテキストで実行されます。
  • レプリケーション管理オブジェクト (RMO) を使用するアプリケーションまたは ActiveX コントロールからエージェントを開始する : エージェントは、RMO を呼び出しているアプリケーションまたは ActiveX コントロールのコンテキストで実行されます。
    ms151868.note(ja-jp,SQL.90).gifメモ :
    ActiveX コントロールは推奨されません。

Windows 統合セキュリティのコンテキストで接続することをお勧めします。また、旧バージョンとの互換性のために SQL Server セキュリティを使用できます。推奨事項の詳細については、「レプリケーション セキュリティの推奨事項」を参照してください。

エージェントに必要な権限

エージェントを実行して接続するアカウントには、さまざまな権限が必要です。これらの権限を次の表に詳しく示します。各エージェントは異なる Windows アカウントで実行することをお勧めします。また、このアカウントには、必要な権限のみ許可してください。複数のエージェントに関連するパブリケーション アクセス リスト (PAL) の詳細については、「パブリッシャのセキュリティ確保」を参照してください。

ms151868.note(ja-jp,SQL.90).gifメモ :
Windows Vista のユーザー アカウント制御 (UAC) により、スナップショット共有への管理アクセスが妨害される場合があります。このため、スナップショット エージェント、ディストリビューション エージェント、およびマージ エージェントによって使用される Windows アカウントに、スナップショット共有の権限を明示的に与える必要があります。この操作は、Windows アカウントが Administrators グループのメンバである場合にも必要です。詳細については、「スナップショット フォルダのセキュリティ」を参照してください。
エージェント 権限

スナップショット エージェント

このエージェントを実行する Windows アカウントは、ディストリビュータに接続するときに使用されます。このアカウントは、次の条件を満たしている必要があります。

  • 最低でも、ディストリビューション データベースの db_owner 固定データベース ロールのメンバである。
  • スナップショット共有の書き込み権限を持っている。

パブリッシャへの接続に使用されるアカウントは、最低でもパブリケーション データベースの db_owner 固定データベース ロールのメンバである必要があります。

ログ リーダー エージェント

このエージェントを実行する Windows アカウントは、ディストリビュータに接続するときに使用されます。このアカウントは、最低でもディストリビューション データベースの db_owner 固定データベース ロールのメンバである必要があります。

パブリッシャへの接続に使用されるアカウントは、最低でもパブリケーション データベースの db_owner 固定データベース ロールのメンバである必要があります。

プッシュ サブスクリプションのディストリビューション エージェント

このエージェントを実行する Windows アカウントは、ディストリビュータに接続するときに使用されます。このアカウントは、次の条件を満たしている必要があります。

  • 最低でも、ディストリビューション データベースで db_owner 固定データベース ロールのメンバである。
  • PAL のメンバである。
  • スナップショット共有の読み取り権限を持っている。
  • サブスクリプションが非 SQL Server サブスクライバの場合、サブスクライバの OLE DB プロバイダのインストール ディレクトリに対する読み取り権限を持っている。

サブスクライバへの接続に使用されるアカウントは、最低でもサブスクリプション データベースの db_owner 固定データベース ロールのメンバである必要があります。サブスクリプションが SQL Server 以外のサブスクライバ用である場合は、同等の権限を持っている必要があります。

プル サブスクリプションのディストリビューション エージェント

このエージェントを実行する Windows アカウントは、サブスクライバに接続するときに使用されます。このアカウントは、最低でもサブスクリプション データベースの db_owner 固定データベース ロールのメンバである必要があります。

ディストリビュータへの接続に使用されるアカウントは、次の条件を満たしている必要があります。

  • PAL のメンバである。
  • スナップショット共有の読み取り権限を持っている。

プッシュ サブスクリプションのマージ エージェント

このエージェントを実行する Windows アカウントは、パブリッシャおよびディストリビュータに接続するときに使用されます。このアカウントは、次の条件を満たしている必要があります。

  • 最低でも、ディストリビューション データベースで db_owner 固定データベース ロールのメンバである。
  • PAL のメンバである。
  • パブリケーション データベースのユーザーに関連付けられたログインである。
  • スナップショット共有の読み取り権限を持っている。

サブスクライバへの接続に使用されるアカウントは、最低でもサブスクリプション データベースの db_owner 固定データベース ロールのメンバである必要があります。

プル サブスクリプションのマージ エージェント

このエージェントを実行する Windows アカウントは、サブスクライバに接続するときに使用されます。このアカウントは、最低でもサブスクリプション データベースの db_owner 固定データベース ロールのメンバである必要があります。

パブリッシャおよびディストリビュータへの接続に使用されるアカウントは、次の条件を満たしている必要があります。

  • PAL のメンバである。
  • パブリケーション データベースのユーザーに関連付けられたログインである。
  • ディストリビューション データベース内のユーザーに関連付けられているログインである。Guest ユーザーでもかまいません。
  • スナップショット共有の読み取り権限を持っている。

キュー リーダー エージェント

このエージェントを実行する Windows アカウントは、ディストリビュータに接続するときに使用されます。このアカウントは、最低でもディストリビューション データベースの db_owner 固定データベース ロールのメンバである必要があります。

パブリッシャへの接続に使用されるアカウントは、最低でもパブリケーション データベースの db_owner 固定データベース ロールのメンバである必要があります。

サブスクライバへの接続に使用されるアカウントは、最低でもサブスクリプション データベースの db_owner 固定データベース ロールのメンバである必要があります。

SQL Server エージェントのエージェント セキュリティ

SQL Server Management Studio、Transact-SQL プロシージャ、または RMO を使用してレプリケーションを構成すると、既定では各エージェントの SQL Server エージェント ジョブが作成されます。その後エージェントは、連続実行、スケジュールを基にした実行、要求時実行にかかわらず、ジョブ ステップのコンテキストで実行されます。これらのジョブは、SQL Server Management Studio の [ジョブ] フォルダで表示できます。次の表にジョブ名の一覧を示します。

エージェント ジョブ名

スナップショット エージェント

<Publisher>-<PublicationDatabase>-<Publication>-<integer>

マージ パブリケーション パーティションに対するスナップショット エージェント

Dyn_<Publisher>-<PublicationDatabase>-<Publication>-<GUID>

ログ リーダー エージェント

<Publisher>-<PublicationDatabase>-<integer>

プル サブスクリプションに対するマージ エージェント

<Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<integer>

プッシュ サブスクリプションに対するマージ エージェント

<Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>

プッシュ サブスクリプションに対するディストリビューション エージェント

<Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>1

プル サブスクリプションに対するディストリビューション エージェント

<Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<GUID>2

SQL Server 以外のサブスクライバへのプッシュ サブスクリプションに対するディストリビューション エージェント

<Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>

キュー リーダー エージェント

[<Distributor>].<integer>

1 Oracle パブリケーションに対するプッシュ サブスクリプションの場合は、ジョブ名が **「<Publisher>-<PublicationDatabase>」ではなく「<Publisher>-<Publisher>」**になります。

2 Oracle パブリケーションに対するプル サブスクリプションの場合は、ジョブ名が **「<Publisher>-<PublicationDatabase>」ではなく「<Publisher>-<DistributionDatabase>」**になります。

レプリケーションの構成時には、エージェントを実行するアカウントを指定します。しかし、すべてのジョブ ステップはプロキシのセキュリティ コンテキストで実行されます。そのためレプリケーションでは、指定したエージェント アカウントに対して、以下のマッピングが内部的に実行されます。

  • アカウントは、まず Transact-SQL CREATE CREDENTIAL ステートメントを使用して資格情報にマップされます。SQL Server エージェント プロキシは、資格情報を使用して Windows ユーザー アカウントに関する情報を格納します。
  • sp_add_proxy ストアド プロシージャが呼び出され、資格情報を使用してプロキシが作成されます。プロキシの詳細については、「SQL Server エージェント プロキシの作成」を参照してください。
ms151868.note(ja-jp,SQL.90).gifメモ :
この情報は、適切なセキュリティ コンテキストでエージェントを実行する作業についての理解を深めるために提供されています。作成済みの資格情報またはプロキシは通常、直接操作する必要はありません。

参照

概念

レプリケーション セキュリティの推奨事項
スナップショット フォルダのセキュリティ

その他の技術情報

レプリケーションのセキュリティに関する注意点

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

変更内容 :
  • Windows Vista に固有のスナップショット フォルダ要件に関する注意事項を追加しました。