Notification Services Windows サービスの構成
Notification Services アプリケーションを定義する場合、ホストされるイベント プロバイダ、ジェネレータ、およびディストリビュータを実行するサーバーを指定します。Notification Services のインスタンスを配置する際には、これらのコンポーネントを 1 つ以上実行する各サーバーに Notification Services エンジンをインストールします。通常、このエンジンは、Notification Services のインスタンスを登録する際にインストールする NS$instanceName Microsoft Windows サービスになります。このトピックでは、NS$instanceName Windows サービスのスタートアップとセキュリティを構成する方法について説明します。
Windows サービスを使用してエンジンを実行しない場合は、他のアプリケーションまたはプロセスでエンジンをホストできます。詳細については、「Notification Services エンジンのホスト」を参照してください。
Windows サービスのスタートアップの構成
コンピュータの起動時に NS$instanceName Windows サービスが自動的に開始するように構成できます。また、何らかの理由で Windows サービスが停止した場合に、それらのサービスが自動的に再開を試行するように設定することもできます。
重要 : |
---|
NS$instanceName Windows サービスを使用するには、データベース エンジン が開始している必要があります。データベース エンジン のインスタンスが開始されていない場合は、NS$instanceName Windows サービスによって開始が試行されますが失敗します。データベースがリモート サーバーに配置される場合もあるため、依存関係のチェックは NS$instanceName サービスには組み込まれていません。 |
- Notification Services のインスタンスを自動的に開始する方法 (サービス マネージャ)
- Notification Services のインスタンスを自動的に再起動する方法 (サービス マネージャ)
サービス セキュリティの構成
各 NS$instanceName Windows サービスは Windows アカウントのコンテキストで実行され、そのアカウントはドメイン アカウント、ローカル アカウント、またはビルトイン アカウント (Network Service アカウントなど) にすることができます。このアカウントには、インスタンスを登録するときにサービスとしてログオンするのに必要な権限が許可されます。このアカウント、またはサービスに関連付けられた Microsoft SQL Server ログイン アカウントは、適切なデータベース権限を持つ必要もあります。このような権限を持っていない場合、サービスは開始されません。
- Windows 認証を使用する場合、データベース エンジン ログイン権限をアカウントに許可すること、インスタンス データベースとアプリケーション データベースへのアクセス権をアカウントに許可すること、およびこれらのデータベース内の適切なデータベース ロール (NSEventProvider、NSGenerator、NSDistributor、またはNSRunService) にアカウントを追加することによって、データベース権限を NS$instanceName Windows サービスに割り当てる必要があります。
Windows 認証を使用するときは Notification Services のインスタンスを作成するユーザーがデータベース所有者 (dbo) になることに注意してください。既定では、このユーザーは、データベースに対する必要な権限をすべて持っています。ただし、Microsoft では、セキュリティを向上するために、NS$instanceName Windows サービスに対しては個別のアカウントを使用することをお勧めしています。 - Windows 認証を使用できない場合、インスタンスを登録するときに、この Windows サービスに SQL Server のログイン情報とパスワードを割り当てる必要があります。SQL Server ログイン アカウントは必須で、インスタンス データベースとアプリケーション データベースへのアクセス権を許可する必要があります。また、この Windows サービスの権限を制限するために、これらのデータベースの適切なデータベース ロール (NSEventProvider、NSGenerator、NSDistributor、または NSRunService) にこのアカウントを追加する必要があります。
同じ SQL Server ログインを使用してデータベースを作成し、インスタンスを登録する場合、このアカウントはデータベース所有者 (dbo) になり、インスタンス データベースとアプリケーション データベースで必要なすべての権限がこのアカウントに許可されます。ただし、Microsoft では、Windows サービスの権限を制限するために、この NS$instanceName Windows サービスに対しては個別のログインを使用することをお勧めしています。
インスタンスを登録するとき、サービスによって使用される Windows アカウントまたは SQL Server ログイン アカウントを指定します。セキュリティ アカウントを変更するには、インスタンスを再登録するか、SQL Server 構成マネージャまたは Windows のコントロール パネルの [サービス] でサービスのプロパティを変更する必要があります。
データベース ロールに Windows サービス アカウントを追加する場合は、Windows サービスの要件を満たしながら、それを超えない権限を持つロールを使用します。
メモ : |
---|
すべてのサーバーですべてのコンポーネントが実行されるわけではありません。複数のコンピュータにわたって Notification Services のインスタンスをスケールアウトする場合、一部のサーバーでは 1 つのコンポーネントしか実行できないことがあります。 |
- NSEventProvider データベース ロールは、イベントを送信する権限を許可します。ホストされるイベント プロバイダが Windows サービスによって実行される場合は、アカウントをこのロールのメンバにします。
- NSGenerator データベース ロールは、ジェネレータを実行するための権限を許可します。Windows サービスがジェネレータを実行する場合は、アカウントをこのロールのメンバにします。
- NSDistributor データベース ロールは、通知を配信する権限を許可します。Windows サービスがディストリビュータを実行する場合は、アカウントをこのロールのメンバにします。
- NSRunService データベース ロールには、NSEventProvider ロール、NSGenerator ロール、および NSDistributor ロールが含まれています。ホストされるイベント プロバイダ、ジェネレータ、およびディストリビュータが Windows サービスによって実行される場合は、アカウントをこのロールのメンバにします。
Notification Services のセキュリティ構成については、「Notification Services のセキュリティの設定」を参照してください。
さまざまな構成を配置する手順については、「Notification Services の配置」を参照してください。
NS$instanceName Windows サービスのセキュリティ アカウントを設定するには
- エンジン コンポーネントに対する Notification Services のインスタンスを登録する方法 (SQL Server Management Studio)
- nscontrol register コマンド
- Notification Services のインスタンスの Windows アカウントを変更する方法 (SQL Server 構成マネージャ)
- Notification Services のインスタンスの Windows アカウントを変更する方法 (サービス マネージャ)
参照
概念
Notification Services のセキュリティの設定
Notification Services インスタンスの開始と停止
インスタンス、アプリケーション、またはコンポーネントの有効化および無効化
Notification Services データベース ロール