次の方法で共有


セキュリティ モデル

ここでは、変更データ キャプチャのセキュリティ モデルについて説明します。

構成と管理

データベースで変更データ キャプチャを有効または無効にするには、sys.sp_cdc_enable_db (Transact-SQL) または sys.sp_cdc_disable_db (Transact-SQL) の呼び出し元が固定サーバー ロール sysadmin のメンバである必要があります。テーブル レベルで変更データ キャプチャを有効または無効にするには、sys.sp_cdc_enable_table (Transact-SQL) および sys.sp_cdc_disable_table (Transact-SQL) の呼び出し元が sysadmin ロールのメンバか db_owner データベース ロールのメンバである必要があります。

変更データ キャプチャを有効にすると、セキュリティ モデルをサポートするために、特別な変更データ キャプチャ ユーザーと変更データ キャプチャ スキーマ (所有者は変更データ キャプチャ データベース ユーザー) がデータベースに作成されます。リソース データベースに存在しない変更データ キャプチャ オブジェクトはすべて、このスキーマに作成され、変更データ キャプチャ ユーザーに所有されます。これには、テーブルの変更データ キャプチャを有効にしたときに作成されるゲーティング ロールも含まれます。

変更データ キャプチャ ジョブの管理をサポートするストアド プロシージャを使用できるのは、sysadmin サーバー ロールのメンバ、および database db_owner ロールのメンバに制限されます。

変更の列挙とメタデータ クエリ

キャプチャ インスタンスに関連付けられた変更データにアクセスするには、関連付けられたソース テーブルのすべてのキャプチャ対象列に対する選択アクセスがユーザーに許可されている必要があります。また、キャプチャ インスタンスの作成時にゲーティング ロールが指定されている場合、呼び出し元は、指定されたゲーティング ロールのメンバである必要もあります。メタデータにアクセスするためのその他の一般的な変更データ キャプチャ関数には、public ロールですべてのデータベース ユーザーがアクセスできます。ただし、通常は、返されるメタデータへのアクセスも、基になるソース テーブルに対する選択アクセス、および定義されたすべてのゲーティング ロールのメンバシップに基づいて制限されます。

変更データ キャプチャが有効になっているソース テーブルに対する DDL 操作

テーブルで変更データ キャプチャが有効になっているときにテーブルに DDL 操作を適用できるのは、固定サーバー ロール sysadmin のメンバ、database role db_owner のメンバ、または database role db_ddladmin のメンバのみです。テーブルに対する DDL 操作の実行が明示的に許可されているユーザーがこれらの操作を実行しようとすると、エラー 22914 が返されます。