配置 Notification Services 的 Windows 帐户

更新日期: 2006 年 4 月 14 日

Notification Services 引擎对 Notification Services 操作很重要。此引擎运行用于提交事件、生成通知和分发结果消息的宿主事件提供程序、生成器和分发服务器。此引擎通常由 NS$instanceName Microsoft Windows 服务运行,但也可由其他应用程序或进程来承载。

该引擎在 Windows 帐户的上下文中运行。如果使用 NS$intanceName Windows 服务,则在注册 Notification Services 实例时指定运行该服务的帐户。如果在其他应用程序或进程中承载此引擎,则必须为该应用程序或进程的配置 Windows 权限。

引擎所需的 Windows 权限

运行引擎的帐户必须具有以下权限:

  • 在 Notification Services 文件夹(%ProgramFiles%\Microsoft SQL Server\90\NotificationServices\n.n.nnn) 和子文件夹中的读取和执行权限。默认情况下,只有本地管理员组和权限高的用户组的成员才能访问这些文件夹中的文件。当通过向 Windows SQLServer2005NotificationServicesUser$ComputerName 组中添加服务帐户来注册实例时,Notification Services 便会授予这些权限。
  • 读写下列注册表位置的注册表项的权限:HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Services\NotificationServices 和 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services。当您在注册实例期间创建服务时,便会将此权限授予 Windows 服务帐户。
  • 要写入 Windows 应用程序日志中的权限。
  • 对于使用文件系统观察器事件提供程序的应用程序,事件提供程序必须能够读取和重命名删除事件的文件夹中的文件,并且必须具有对事件架构文件 (.xsd) 的读取权限。
  • 对于使用 File 传递协议投递通知的应用程序,分发服务器必须对写入通知的文件夹具有写入权限。
  • 对于使用 XSLT 内容格式化程序的应用程序,分发服务器必须对包含 XSLT 文件的文件夹具有读取权限。有关详细信息,请参阅 XSLT 文件位置

此外,引擎帐户可能需要具有本地管理员组的成员身份。如果由实例承载的应用程序使用本地 Internet 信息服务 (IIS) 简单邮件传输协议 (SMTP) 服务来发送通知,则分发服务器必须在管理员的上下文中发送这些通知。

ms172585.note(zh-cn,SQL.90).gif重要提示:
此引擎还必须在实例所使用的 SQL Server 数据库中具有权限。有关详细信息,请参阅为 Notification Services 实例配置 SQL Server 权限

Windows 服务帐户类型

如果 Notification Services 实例的引擎不是由单独的应用程序或进程承载,则该实例将作为 Windows 服务运行。Windows 服务可以使用下列帐户类型来运行,但有一些帐户类型难于管理,因此不鼓励用户使用这些帐户:

  • **域用户帐户。**域用户帐户可以简化对网络资源访问和数据库访问的控制,因为用户可以指定此帐户应具有的准确权限。为了对授予此服务的权限进行最佳控制,域管理员可以为 Notification Services 实例创建新帐户。
  • **本地用户帐户。**可以在本地计算机中创建用户帐户并在此帐户下运行 NS$intanceName 服务。该帐户使用的格式为 computer\username。如果数据库位于同一台服务器上,还可以为此用户帐户授予数据库权限。如果数据库位于远程计算机上,则必须为 Notification Services 实例配置 SQL Server 登录帐户。
  • **NT AUTHORITY\本地服务帐户。**这是一种可用于 Microsoft Windows XP 和 Microsoft Windows Server 2003 的内置帐户。本地服务帐户具有与用户组成员相同的对资源和对象的访问级别,它可以在不提供任何凭据的情况下作为空对话访问网络资源。如果数据库位于同一台服务器上,则可为此帐户授予数据库权限。但是,Microsoft 禁止使用 NS$intanceName 服务的本地服务帐户。可以有多个服务使用此帐户,因此很难控制哪个服务具有访问 SQL Server 数据库的权限。
  • **NT AUTHORITY\网络服务帐户。**这是一种可用于 Windows XP 和 Windows Server 2003 的内置帐户。Microsoft 禁止使用 NS$intanceName 服务的网络服务帐户。在网络服务帐户下运行的所有服务在访问网络资源时都映射到 domain\remotecomputername$ 帐户。由于可以有多个服务使用此帐户,因此很难控制哪个服务具有对网络资源和 SQL Server 数据库的访问权限。
  • **本地系统帐户。**这是一种内置帐户。Microsoft 强烈禁止使用 NS$intanceName 服务的本地系统帐户,因为此帐户可以不受限制地访问所有本地资源。此外,本地系统帐户下运行的所有服务在访问网络资源时都映射到 domain\remotecomputername$ 帐户。由于可以有多个服务使用该帐户,因此很难控制哪个服务具有对网络资源和 SQL Server 数据库的访问权限。

指定 Windows 服务的帐户

用户在创建服务时会为 NS$intanceName Windows 服务设置 Windows 帐户。注册实例时创建此服务。可以通过重新注册实例或通过在 Windwos 服务管理器中更改帐户来更新帐户。

请参阅

概念

宿主 Notification Services 引擎
配置 Notification Services Windows 服务
为 Notification Services 实例配置 SQL Server 权限

其他资源

设置 Windows 服务帐户

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本 历史记录

2006 年 4 月 14 日

已更改的内容:
  • 更新了注册表项的位置。