Notification Services データベース ロール
Notification Services のインスタンスを作成するときに、Notification Services はインスタンス データベースとアプリケーション データベースのデータベース ロールを作成します。インスタンスのエンジン、サブスクリプション管理インターフェイス、およびホストされないイベント プロバイダは、管理スタッフと同様に、これらのロールを使ってデータベースの必要な権限を取得します。
データベース ロール
すべてのインスタンス データベースとアプリケーション データベースには、同一の Notification Services データベース ロールが含まれます。以下の表は、それらのロールと権限を示しています。
メモ : |
---|
固定サーバー ロール sysadmin やデータベース ロール db_owner または db_securityadmin のメンバはデータベース ロールとその権限を変更できますが、Microsoft では、これらのロールに与えられている権限を変更しないようお勧めしています。これは、ロールをカスタマイズすると、有効な権限の特定が難しくなるからです。 |
ロール
権限
NSAnalysis
パフォーマンス分析とトラブルシューティングに対するレポートを作成するストアド プロシージャを実行できます。
このロール内のユーザーは、データベース内のすべてのテーブルを読み取れます。これらのテーブルは、アドホック レポートに必要になる場合があります。
このロールは、NSReader 権限も持っています。
NSAdmin
インスタンス、アプリケーション、およびコンポーネントを有効にしたり無効にしたりできます。
データベース ロール db_owner や固定サーバー ロール sysadmin および dbcreator のメンバもインストール、アプリケーション、およびコンポーネントの無効化と有効化を行うことができます。
NSDistributor
通知およびディストリビュータの作業テーブルで SELECT 操作と UPDATE 操作を実行するストアド プロシージャを実行できます。
ディストリビュータには、このロールに与えられている権限が必要です。ディストリビュータが専用のサーバーにある場合は、Microsoft Windows サービスによって使用されるアカウントをこのロールに追加します。ホストされるイベント プロバイダやジェネレータと同じサーバーにある場合は、NSRunService ロールを使用します。
このロールは、NSReader 権限も持っています。
NSEventProvider
イベント テーブルで INSERT 操作を、イベント バッチ テーブルで SELECT 操作、INSERT 操作、および UPDATE 操作を実行するストアド プロシージャを実行できます。
イベント プロバイダには、このロールに与えられている権限が必要です。ホストされないイベント プロバイダのアカウントでは、常にこのロールを使用します。ホストされるイベント プロバイダについては、専用のサーバーにある場合にのみこのロールを使用します。ディストリビュータやジェネレータと同じサーバーにある場合は、NSRunService ロールを使用します。
このロールは、NSReader 権限も持っています。
NSGenerator
ジェネレータが使用するストアド プロシージャを実行できます。
ジェネレータには、このロールに与えられている権限が必要です。ジェネレータが専用のサーバーにある場合は、Windows サービスによって使用されるアカウントをこのロールに追加します。ホストされるイベント プロバイダやディストリビュータと同じサーバーにある場合は、NSRunService ロールを使用します。
アプリケーション定義ファイル (ADF) のルールは、このロールの権限を使用して実行されます。
このロールは、NSReader 権限も持っています。
NSReader
インスタンスとアプリケーションのメタデータを読み取るストアド プロシージャを実行できます。
NSRunService
このロールは、NSEventProvider、NSGenerator、NSDistributor、NSReader、NSMonitor、および NSVacuumer の各ロールの権限を兼ね備えています。Windows サービスの NS$instance_name では、サブスクリプションを評価したり通知を生成したりするためにこれらの権限が必要です。
ホストされるイベント プロバイダ、ジェネレータ、およびディストリビュータがすべて同じサーバーで実行される場合は、Windows サービスの NS$instance_name が SQL Server へのアクセスに使用するアカウントにこのロールを割り当てます。それ以外の場合は、NSEventProvider、NSGenerator、および NSDistributor の各ロールを使用して適切な権限を割り当てます。
NSSubscriberAdmin
サブスクライバとサブスクリプションに関連するテーブルから行の読み取り、更新、および削除を行うストアド プロシージャを実行できます。
サブスクリプション管理アプリケーションには、このロールに与えられている権限が必要です。各インスタンス データベースとアプリケーション データベース内で、サブスクリプション管理アプリケーションが SQL Server へのアクセスに使用するアカウントをこのロールに追加します。
メモ :
サブスクライバ レコードを削除しているユーザーがアプリケーション データベースにアクセス権を持っていない場合でも、Notification Services はすべてのアプリケーションで、すべての関連サブスクリプションに対するサブスクライバ レコードの連鎖削除を自動的に実行します。サブスクリプションの削除は、データベース所有者の権限を使用して実行されます。
このロールは、NSReader 権限も持っています。
NSVacuum
アプリケーション データベースから古いデータを削除するストアド プロシージャを実行できます。NSVacuum ストアド プロシージャを実行する必要がある管理者をこのデータベース ロールに追加します。
このロールは、NSReader 権限も持っています。
これらのデータベース ロールに割り当てられた権限を参照するには、sp_helprotect システム ストアド プロシージャを使用します。
参照
概念
Notification Services の配置と管理に必要な権限