サブスクライバーのセキュリティ保護

適用対象:SQL ServerAzure SQL Database

マージ エージェントとディストリビューション エージェントはサブスクライバーに接続します。 これらの接続は、SQL Server ログインまたは Windows ログインのコンテキストで作成されます。 最低限必要な権限のみを与え、かつ、すべてのパスワードの格納を保護するという原則に従って、これらの各エージェントに対し適切なログインを提供することが重要です。 各エージェントに必要な権限の詳細については、「 Replication Agent Security Model」を参照してください。

Note

Azure SQL Managed Instance は、スナップショットおよびトランザクション レプリケーションのパブリッシャー、ディストリビューター、およびサブスクライバーの可能性があります。 Azure SQL Database のデータベースは、スナップショットとトランザクション レプリケーションのプッシュ サブスクライバーの可能性しかありません。 詳細については、Azure SQL Database および Azure SQL Managed Instance を使用したトランザクションのレプリケーションに関するページを参照してください。

ディストリビューション エージェント

サブスクリプションごとに 1 つのディストリビューション エージェント (パブリケーションの新規作成ウィザードで既定で作成される独立したエージェント)、またはパブリケーション データベースとサブスクリプション データベースのペアごとに 1 つのディストリビューション エージェント (共有エージェント) があります。 T

プッシュ サブスクリプションの接続情報を指定する場合は、「プッシュ サブスクリプションの作成」を参照してください。

プル サブスクリプションの接続情報を指定する場合は、「プル サブスクリプションの作成」を参照してください。

[マージ エージェント]

マージ サブスクリプションごとにマージ エージェントがあり、パブリッシャーとサブスクライバーの両方に接続し、更新します。

プッシュ サブスクリプションの接続情報を指定する場合は、「プッシュ サブスクリプションの作成」を参照してください。

プル サブスクリプションの接続情報を指定する場合は、「プル サブスクリプションの作成」を参照してください。

即時更新サブスクリプション

即時更新サブスクリプションを構成する場合は、パブリッシャーに接続する際のアカウントをサブスクライバーで指定します。 接続はサブスクライバーで起動されるトリガーによって使用され、サブスクライバーに変更を反映します。 接続の種類として、3 つのオプションがあります。

  • レプリケーションが作成するリンク サーバー。構成時に指定した資格情報を使用して接続が行われます。

  • レプリケーションによって作成されるリンク サーバー。サブスクライバーで変更を行うユーザーの資格情報を使用して接続を行います。

  • 定義済みのリンク サーバーまたはリモート サーバー。

重要

接続情報を指定する場合は、ストアド プロシージャ sp_link_publication (Transact-SQL) を使用します。 サブスクリプションの新規作成ウィザードの [更新可能なサブスクリプション用のログイン] を使用して、 sp_link_publicationを呼び出すこともできます。 特定の条件下で、サブスクライバーが SQL Server 2005 (9.x) Service Pack 1 (SP1) 以降を実行し、パブリッシャーがそれよりも前のバージョンを実行している場合、このストアド プロシージャは失敗する可能性があります。 このシナリオでストアド プロシージャが失敗する場合は、パブリッシャーを SQL Server 2005 (9.x) SP1 以降にアップグレードしてください。

詳細については、「トランザクション パブリケーションの更新可能なサブスクリプションの作成」および「レプリケーションのセキュリティ設定の表示および変更」を参照してください。

重要

接続用に指定するアカウントには、レプリケーションによってパブリケーション データベース内に作成されるビューのデータの挿入、更新、および削除だけを実行できる権限を与える必要があります。それ以外の権限は与えないでください。 各サブスクライバーで構成したアカウントに、syncobj_<HexadecimalNumber> の形式で名前が指定されたパブリケーション データベース内のビューに対する権限を与えます。

キュー更新サブスクリプション

キュー更新サブスクリプションを構成する際には、セキュリティに関して、以下の 2 点に注意してください。

  • 各ディストリビューターには、キュー リーダー エージェントが 1 つしかありません。 ディストリビューターごとに、キュー更新サブスクリプションを有効にしたパブリケーションを 1 つだけ構成することをお勧めします。

  • キュー リーダー エージェントは、ディストリビューター、パブリッシャー、および各サブスクライバーに接続します。

    • エージェントの実行とディストリビューターへの接続で使用するアカウントは、エージェントを作成する際に指定します (パブリケーションの新規作成ウィザードを使用する場合は、更新サブスクリプションを有効にしたパブリケーションを作成する際にエージェントが作成されます)。

    • エージェントがパブリッシャーに接続する際に使用するアカウントは、パブリッシャーのディストリビューションを構成する際に指定します。 エージェントの実行で使用する Windows アカウントか SQL Server アカウントを指定します。

    • エージェントがサブスクライバーに接続する際に使用するアカウントは、サブスクリプションを作成する際に指定します。

    重要

    サブスクライバーへの接続には SQL Server 認証を使用し、各サブスクライバーへの接続にはそれぞれ異なるアカウントを指定してください。 プル サブスクリプションを使用する場合は、レプリケーションによって、常に Windows 認証を使用するように接続が設定されます (プル サブスクリプションでは、SQL Server 認証が必要なサブスクライバーのメタデータにレプリケーションからアクセスすることはできません)。 その場合、サブスクリプションを構成した後に、接続で SQL Server 認証を使用するように変更してください。

    詳細については、「トランザクション パブリケーションに対して更新可能なサブスクリプションを作成する方法 (SQL Server Management Studio)」および「レプリケーションのセキュリティ設定の表示および変更」を参照してください。

参照

データベース エンジンへの暗号化接続を有効にする (SQL Server 構成マネージャー)
レプリケーション セキュリティの推奨事項
セキュリティと保護 (レプリケーション)