第 9 课:注册、启用和启动实例
更新日期: 2006 年 7 月 17 日
在本课中,您将为 Notification Services 实例配置安全性,并注册安装了 Notification Services 引擎的 Notification Services 实例。然后,将启用并启动该实例。
Notification Services 引擎
在本教程的前面几课中,已为应用程序配置了一个生成器和一个分发服务器。这些组件由 Notification Services 引擎运行。如果应用程序使用了宿主事件提供程序,则该事件提供程序也将由 Notification Services 引擎运行。
Notification Services 引擎是在计算机上注册实例时创建的 Windows 服务,或者是自定义应用程序承载的进程。
在应用程序定义文件 (ADF) 中配置宿主事件提供程序、生成器和分发服务器时,需要指定一个系统名称,即运行这些组件的计算机的名称。必须在具有 ADF 中的系统名称值的每台计算机上安装并运行 Notification Services 引擎。
启动 Notification Services 引擎时,该引擎将与实例和应用程序数据库连接,以便确定要运行的组件以及这些组件的启用状态。然后,该引擎运行已启用的组件。
有关 Notification Services 引擎的详细信息,请参阅控制实例和应用程序操作。
Notification Services 引擎连接到实例和应用程序数据库,并运行其存储过程。若要运行这些存储过程,该引擎必须具有服务器的登录权限和正确的数据库权限。这些权限是通过实例和应用程序数据库中数据库角色的成员资格授予登录名的。有关详细信息,请参阅为 Notification Services 实例配置 SQL Server 权限。
Weather 应用程序的引擎
在本教程中,Notification Services 引擎将作为 Windows 服务运行。注册 Notification Services 实例时,将安装名为 NS$Tutorial 的 Windows 服务。该实例将以本地方式注册。此名称与创建或更新 Notification Services 实例时为 _NSServer_ 参数提供的计算机名称相同。
注册该实例时,必须提供 Windows 用户名和密码。Windows 服务可以使用其 Windows 帐户,也可使用为登录数据库服务器而指定的 SQL Server 登录名。必须将 Windows 帐户或 SQL Server 登录的用户添加到 TutorialNSMain 和 TutorialWeather 数据库,然后将该用户添加到数据库角色中。注册 Notification Services 实例时使用相同的帐户。有关安全模型的详细信息,请参阅 Notification Services 的安全注意事项。
注册了实例并配置了安全性后,即可启用并启动 Notification Services 实例。
配置 Windows 服务的数据库权限
使用下列步骤,配置 Windows 服务使用的帐户的数据库权限,用于连接到 TutorialNSMain 和 TutorialWeather 数据库。
配置 Windows 服务的数据库权限
为 NS$Tutorial Windows 服务选择一个 Windows 帐户。
部署 Notification Services 实例时,请使用具有少数权限的帐户,然后只将必需的权限授予该帐户。
如果可以使用 Windows 身份验证,请确保该 Windows 帐户可以登录到数据库服务器。如果不能使用 Windows 身份验证,请确保有一个 Windows 服务可以使用的 SQL Server 登录名。
若要在对象资源管理器中添加一个新登录帐户,请展开**“安全性”、右键单击“登录名”,然后选择“新建登录”**。可以使用此对话框添加 Windows 帐户或创建 SQL Server 登录帐户。
使用对象资源管理器,在 TutorialNSMain 数据库中为该登录名创建一个数据库用户,并使该用户成为 NSRunService 数据库角色的成员:
- 展开**“数据库”**,然后展开 TutorialNSMain 数据库。
- 右键单击**“安全性”,指向“新建”,再选择“用户”**。
- 在**“用户名”**框中,输入数据库用户名。
数据库用户名通常与登录名相同。 - 在**“登录名”框中,输入 NS$Tutorial Windows 服务使用的登录名。
登录名必须与数据库引擎实例中现有登录的名称完全匹配。单击浏览 (...**) 按钮搜索登录名。 - 在**“数据库角色成员身份”**框中,单击 NSRunService。
- 单击**“确定”**。
在 TutorialWeather 数据库中为该登录名创建一个数据库用户,并使该用户成为 NSRunService 数据库角色的成员:
- 展开 TutorialWeather 数据库。
- 右键单击**“安全性”,指向“新建”,再选择“用户”**。
- 在**“用户名”**框中,输入数据库用户名。
数据库用户名通常与登录名相同。 - 在**“登录名”框中,输入 NS$Tutorial Windows 服务使用的登录名。
登录名必须与数据库引擎实例中现有登录的名称完全匹配。单击浏览 (...**) 按钮搜索登录名。 - 在**“数据库角色成员身份”**框中,单击 NSRunService。
- 单击**“确定”**。
配置 Windows 服务的文件夹权限
由于 Weather 应用程序使用文件传递协议传递通知,因此,还必须确保 Windows 服务帐户对写入通知的文件夹具有相应的权限。
配置 Windows 服务的文件夹权限
打开 Windows 资源管理器。
找到 Notification Services Tutorial 文件夹。
此文件夹的默认位置为 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\tutorial。
展开 Tutorial 文件夹,再展开 Weather 文件夹。
右键单击 Notifications 文件夹,再选择**“共享和安全”**。
在**“安全”**选项卡上,确认 NS$Tutorial Windows 服务所用的 Windows 帐户是否具有写入权限。
注册实例并创建 Windows 服务
使用下列步骤,在本地注册 Notification Services 实例,并安装 NS$Tutorial Windows 服务。在下一步中,Notification Services 向该服务帐户授予 Windows 权限。
注册实例并创建 Windows 服务
在对象资源管理器中,展开 Notification Services。
右键单击 Tutorial,指向**“任务”,再选择“注册”**。
选中**“创建 Windows 服务”**复选框。
输入 NS$Tutorial Windows 服务的登录帐户和密码。
如果使用 SQL Server 身份验证来访问数据库,则选择**“SQL Server 身份验证”并输入 SQL Server 登录名和密码。否则,请保留“Windows 身份验证”**的选中状态。
单击**“确定”**注册实例,创建 Windows 服务并创建性能计数器。
完成注册后,单击**“关闭”**。
启用并启动 Tutorial 实例
使用下列步骤启用 Tutorial 实例,并启动 NS$Tutorial Windows 服务。
启用并启动 Tutorial 实例
在对象资源管理器中,右键单击 Tutorial,再选择**“启用”**。
右键单击 Tutorial,再选择**“启动”**。
如果该服务未启动,则表明该服务没有有效的 Windows 帐户,它没有必需的权限,或者无法连接到 TutorialNSMain 或 TutorialWeather 数据库。请验证该服务所用的帐户是否具有前面所讨论的权限。有关详细信息,请参阅保护 Notification Services 的安全。
查看 Tutorial 实例状态
若要确认是否正确配置了应用程序,以及是否启用并启动了 Tutorial 实例,请查看 Tutorial 实例的状态。
查看 Tutorial 实例状态
右键单击该实例,再选择**“属性”**。
在**“应用程序”页中,可以查看所有应用程序组件的状态。在“当前状态”列中,所有组件均应显示为“已启用”。如果该状态为“启用挂起”,则等待 30 秒,再单击“刷新”**。
如果该状态仍为“启用挂起”,则该组件的系统名与运行 Notification Services 引擎的计算机名称不匹配。请确认**“应用程序”页和“Windows 服务**”页上的**“服务器”**值是否一致。
在**“Windows 服务”页上,可以确认 NS$Tutorial Windows 服务是否正在运行;在“相关组件”**框中,可以查看 Windows 服务启用了哪些组件。您应看到一个生成器和一个分发服务器。
下一课
即使 Tutorial 实例已启用并正在运行,该实例也要在添加了订阅方、订阅和事件后才生成通知。在下一课中,将添加订阅方和订阅。
请参阅
概念
其他资源
控制实例和应用程序操作
保护 Notification Services 的安全
生成通知解决方案
SQL Server Notification Services 简介