SQL服务器对等复制 – 代理运行NT AUTHORITY \ NETWORK SERVICE?

在testing平台上,我试图让SQL Server 2005对等(事务)复制工作,复制代理在NT AUTHORITY\NETWORK SERVICE帐户下运行。

在此之前,我使用在SQL Server代理服务帐户(即SYSTEM帐户)下运行的代理安装对等复制,并在AD中创build了一个包含计算机帐户的安全组。 我给了这个组织在dbs,PAL,分销商必要的权限。 这工作得很好。

如果我尝试使用以NT AUTHORITY \ NETWORK SERVICE(或NT AUTHORITY \ NETWORKSERVICE – 没有空间,我都试过)运行的代理程序完全相同的设置,我在复制监视器中看到以下错误:

无法启动执行(原因:错误身份validation代理Nt权限\networking服务,系统错误:login失败:未知的用户名或密码错误)

我也尝试使networking服务在每台服务器上的SQLlogin,并给它的系统pipe理员angular色。 这没有什么区别。 作为networking服务运行复制代理是不是可能?

(注意 – 我知道我可以使用带有用户名/密码的AD帐户,由于各种原因,我们不希望在这种情况下这样做)

为了达夫曼和其他人的利益,我们确实find了一个非标准的解决scheme。

如果查看每个复制代理的SQL Server代理作业,作业的属性将显示分发者(distrib.exe),日志读取器(logread.exe)和快照(snapshot.exe)代理所需的命令行选项。

我在c#中编写了一个小窗口服务,用这些命令行参数启动这些代理,并将该服务设置为在networking服务帐户下运行。 这工作正常。

为此,您必须从SQL中删除启动复制代理的服务器代理的作业。 当代理以这种方式启动时,控制代理的GUI工具(例如从复制监视器开始同步)不再起作用,所以我在windows服务中添加了一些function来替代这些function。

但其他一切(警报,报告等)似乎没问题。 我们有几个月的testingconfiguration,没有发现问题。

注意,如果你不想写一个windows服务,你可以用一个batch file做同样的事情,并由一个计划任务或srvany启动(这是我们首先testing它)。