パブリッシャのセキュリティ確保
次のレプリケーション エージェントはパブリッシャに接続します。
ログ リーダー エージェント
スナップショット エージェント
キュー リーダー エージェント
マージ エージェント
最低限必要な権限のみを与え、かつ、すべてのパスワードの格納を保護するという原則に従って、これらの各エージェントに対し適切なログインを提供することをお勧めします。ログインとパスワードの管理の詳細については、「レプリケーションのログインとパスワードの管理」を参照してください。各エージェントに必要な権限の詳細については、「レプリケーション エージェントのセキュリティ モデル」を参照してください。
ログインとパスワードの適切な管理以外にも、パブリケーション アクセス リスト (PAL) の役割を理解しておく必要があります。PAL は、パブリッシャのデータベースへのアドホック アクセスを制限すると同時に、ログインしてパブリケーション データへのアクセスを可能にするために使用されます。
パブリケーション アクセス リスト
PAL は、パブリッシャでパブリケーションの安全を確保する主要なメカニズムです。PAL は、Microsoft Windows のアクセス制御リストによく似た機能を備えています。パブリケーションを作成すると、レプリケーションによってそのパブリケーションに対する PAL が作成されます。PAL は、パブリケーションへのアクセスを許可されているログインとグループのリストを含めるように構成できます。エージェントがパブリッシャまたはディストリビュータに接続し、パブリケーションへのアクセスを要求すると、PAL 内の認証情報が、エージェントによって提供されるパブリッシャ ログインと比較されます。このプロセスでは、クライアント ツールがパブリッシャとディストリビュータのログインを使用してパブリッシャ側で直接変更を行う危険性を回避できるので、パブリッシャのセキュリティを向上できます。
注 |
---|
PAL のメンバに含めるため、レプリケーションによって、各パブリケーションに対してパブリッシャ上にロールが作成されます。ロールには、マージ レプリケーションの場合は Msmerge_<PublicationID> という形式、トランザクション レプリケーションとスナップショット レプリケーションの場合は MSReplPAL_<PublicationDatabaseID>_<PublicationID> という形式で名前が付けられます。 |
既定で PAL に含まれるログインは、パブリケーションが作成された時点の sysadmin 固定サーバー ロールのメンバ、およびパブリケーションを作成するために使用されるログインです。既定で、パブリケーション データベース上の sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバであるすべてのログインは、明示的に PAL に追加しなくても、パブリケーションに対してサブスクライブできます。
PAL を使用する場合は、次のガイドラインを考慮してください。
SQL Server ログインを PAL に追加する前に、そのログインをパブリケーション データベースのデータベース ユーザーに関連付ける必要があります。
最小特権の原則に従って、PAL 内のログインに、レプリケーション タスクを実行するために必要な権限のみを許可します。レプリケーションに必要のない固定データベース ロールやサーバー ロールに、ログインを追加しないでください。必要な権限の詳細については、「レプリケーション エージェントのセキュリティ モデル」および「レプリケーション セキュリティの推奨事項」を参照してください。
リモート ディストリビュータを使用する場合、PAL 内のアカウントは、パブリッシャとディストリビュータの両方で使用できる必要があります。このアカウントは、どちらのサーバーでも定義されているドメイン アカウントまたはローカル アカウントにする必要があります。両方のログインに関連付けられているパスワードは、同じにする必要があります。
PAL に Windows アカウントが含まれており、ドメインで Active Directory が使用されている場合、SQL Server を実行する際に使用するアカウントが Active Directory から読み取りを行う権限を持っている必要があります。Windows アカウントに関する問題が発生した場合は、SQL Server を実行する際に使用するアカウントが十分な権限を持っていることを確認します。詳細については、Windows のマニュアルを参照してください。
PAL を管理するには
SQL Server Management Studio: パブリケーション アクセス リストのログインを管理する方法 (SQL Server Management Studio)
レプリケーション Transact-SQL プログラミング : パブリケーション アクセス リストのログインを管理する方法 (レプリケーション Transact-SQL プログラミング)