我正在通过IIS / Websync在SQL Server CE,3.5 SP2和SQL Server 2012之间进行合并复制。当我使用数据库身份验证与发布者联系时,一切都很完美。如果我将其切换到NT身份验证,我的脚本中会出现以下错误:
初始化SQL Server Reconciler失败。再试一次。
...并在IIS服务器同步日志中记录以下错误:
Command = SYNC Hr = 00004818用户'domain \ user登录失败。 18456
我试图改变这个的原因是因为(如果我错了,请纠正我)我不想将凭证存储在我的同步脚本(powershell)中。我希望如果我使用NT身份验证,它将使用此脚本在任务计划程序中运行的凭据 - 或者手动运行它的任何人。基本上,这是我的目标 - 但是可以实现 - 不在书信中存储信用。
答案 0 :(得分:0)
我实现此功能的唯一方法是运行向导并选择“匿名”进行Web访问。只有这样我才被提示输入将用于NT Auth的凭证(存储在Web服务器上)。这意味着所有客户端都匿名连接并对SQL使用相同的信用。他们不能拥有自己的SQL凭据。但是,它们每个都有自己的IIS凭据。
答案 1 :(得分:0)
要使用Windows身份验证,必须在IIS服务器上使用基本身份验证(可能使用SSL保护),但客户端必须提供Windows用户名和密码。然后,您可以将PublisherSecurityMode设置为NTAuthentication,然后Windows帐户将登录到数据库服务器。因此,您必须在脚本中存储信用卡或提示运行脚本的人员获取凭据,然后相应地设置InternetLogin和InternetPassword属性。