Notification Services 数据库角色

创建 Notification Services 实例时,便会在实例数据库和应用程序数据库中创建数据库角色。实例的引擎、订阅管理界面、非宿主事件提供程序以及管理人员使用这些角色获取数据库中的所需权限。

数据库角色

所有实例数据库和应用程序数据库都包含相同的 Notification Services 数据库角色。下表列出了这些角色及其权限。

ms171396.note(zh-cn,SQL.90).gif注意:
虽然数据库角色及其权限可以由 sysadmin 固定服务器角色成员或者 db_ownerdb_securityadmin 数据库角色成员更改,但是 Microsoft 不建议更改授予这些角色的权限,因为自定义的角色使得确定有效权限更加困难。

角色

权限

NSAnalysis

可以执行生成性能分析和疑难解答报告的存储过程。

此角色的用户可以读取数据库中所有的表,这对于即席报表是必需的。

此角色还具有 NSReader 权限。

NSAdmin

可以启用和禁用实例、应用程序和组件。

db_owner 数据库角色成员以及 sysadmindbcreator 固定服务器角色成员也可启用和禁用实例、应用程序和组件。

NSDistributor

可以执行能够对通知和分发服务器工作表执行 SELECT 和 UPDATE 操作的存储过程。

分发服务器需要授予此角色的权限。当分发服务器位于它们自己的服务器上时,将 Microsoft Windows 服务使用的帐户添加到此角色。如果分发服务器与宿主事件提供程序以及生成器位于相同的服务器上,则使用 NSRunService 角色。

此角色还具有 NSReader 权限。

NSEventProvider

可以执行能够对事件表执行 INSERT 操作以及对事件批次表执行 SELECT、INSERT 和 UPDATE 操作的存储过程。

事件提供程序需要授予此角色的权限。非宿主事件提供程序帐户应始终使用此角色。如果宿主事件提供程序位于它们自己的服务器上,则应使用此角色。如果宿主事件提供程序与分发服务器以及生成器位于相同的服务器上,则使用 NSRunService 角色。

此角色还具有 NSReader 权限。

NSGenerator

可以执行由生成器使用的存储过程。

生成器需要授予此角色的权限。当生成器位于它自己的服务器上时,将 Windows 服务使用的帐户添加到此角色。如果生成器与宿主事件提供程序以及分发服务器位于相同的服务器上,则使用 NSRunService 角色。

应用程序定义文件 (ADF) 中的规则使用此角色的权限来执行。

此角色还具有 NSReader 权限。

NSReader

可以执行能够读取实例和应用程序元数据的存储过程。

NSRunService

此角色有 NSEventProviderNSGeneratorNSDistributorNSReaderNSMonitorNSVacuumer 角色的组合权限。NS$instance_name Windows 服务需要这些权限来评估订阅和生成通知。

如果宿主事件提供程序、生成器以及分发服务器都在同一个服务器上运行,则将此角色分配给 NS$instance_name Windows 服务访问 SQL Server 所使用的帐户。否则,通过 NSEventProviderNSGeneratorNSDistributor 角色分配相应的权限。

NSSubscriberAdmin

可以执行能够读取、更新和删除订阅方表和订阅相关表中各行的存储过程。

订阅管理应用程序需要授予此角色的权限。将订阅管理应用程序访问 SQL Server 所使用的帐户添加到每个实例和应用程序数据库内的此角色中。

ms171396.note(zh-cn,SQL.90).gif注意:

即使删除订阅方记录的用户没有访问应用程序数据库的权限,Notification Services 也会自动删除所有应用程序中与所删除的订阅方记录相关的所有订阅。执行订阅删除需要使用数据库所有者权限。

此角色还具有 NSReader 权限。

NSVacuum

可以执行能够删除应用程序数据库中过时数据的存储过程。将可能需要运行 NSVacuum 存储过程的管理员添加到此数据库角色。

此角色还具有 NSReader 权限。

若要查看分配给这些数据库角色的权限,请使用 sp_helprotect 系统存储过程。

请参阅

概念

部署和管理 Notification Services 所需的权限

其他资源

sp_helprotect (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助