MSSQL_ENG021798

适用于: SQL Server Azure SQL 托管实例

消息详细信息

Attribute
产品名称 SQL Server
事件 ID 21798
事件来源 MSSQLSERVER
组件 SQL Server 数据库引擎
符号名称
消息正文 在继续操作之前,必须通过 '%s' 添加 '%s' 代理作业。 请参阅 '%s' 的文档。

说明

要创建发布,您必须是发布服务器上的 sysadmin 固定服务器角色的成员或者发布数据库中的 db_owner 固定数据库角色的成员。 如果您是 db_owner 角色的成员,则发生以下情况将会引发此错误:

  • 从 SQL Server 2000(8.x)运行脚本。 SQL Server 2005(9.x)中的安全模型已更改,并且必须更新这些脚本。

  • 存储过程sp_addpublication在执行sp_addlogreader_agent(Transact-SQL)之前执行。 这适用于所有的事务发布。

  • 存储过程sp_addpublication在执行sp_addqreader_agent(Transact-SQL)之前执行。 这适用于为排队更新订阅启用的事务发布(sp_addpublication 的 @allow_queued_tran 参数的值为 TRUE)

存储过程 sp_addlogreader_agentsp_addqreader_agent 每个存储过程创建一个代理作业,并允许指定运行代理的 Microsoft Windows 帐户。 对于 sysadmin 角色中的用户,如果未执行sp_addlogreader_agentsp_addqreader_agent,则隐式创建代理作业;代理在分发服务器的 SQL Server 代理 服务帐户的上下文下运行。 尽管 sp_addlogreader_agentsp_addqreader_agent 对于 sysadmin 角色中的用户不是必须的,但是为了安全起见,最好为代理指定单独的帐户。 有关详细信息,请参阅 复制代理安全模式

用户操作

请确保按正确的顺序执行过程。 有关详细信息,请参阅 Create a Publication。 如果具有以前版本的 SQL Server 的复制脚本,请更新这些脚本以包含 SQL Server 2005(9.x)和更高版本所需的存储过程和参数。 有关详细信息,请参阅升级复制脚本(Replication Transact-SQL 编程)。