サブスクライバーのセキュリティ保護
適用対象: SQL Server Azure SQL データベース
マージ エージェントとディストリビューション エージェントはサブスクライバーに接続します。 これらの接続は、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)」および「レプリケーションのセキュリティ設定の表示および変更」を参照してください。