2

我有一个合并复制设置,在我们的开发服务器(SQL Server 2008 R2 SP2)上发布,在我的本地机器上订阅。出版商充当自己的分销商。我本地计算机上订阅属性中的发布者和分发者连接正在使用发布的发布访问列表 (PAL) 中的登录名(来自开发服务器)。如果我将此登录名添加到发布者的 sysadmin 服务器角色,则在同步订阅时一切正常。但是,如果我从 sysadmin 服务器角色中删除登录名,同步将不起作用——我得到一个超时(“操作超时”)。

我的理解是我只需要将登录名添加到 PAL,但我必须缺少具有必要权限的东西。

我的另一个问题是是否可以创建一个其成员会自动添加到 PAL 的数据库角色。我在某处读到 SQL Server 2008 SP3 可以做到这一点;我想知道SP2是否有可能。或者有没有办法创建一个拥有所有必要权限的数据库角色,以便其成员(用户)可以在订阅中使用(作为发布者和分发者连接)?

这一切的背景是我们有用户订阅我们的出版物,但我们只想根据他们的登录来复制数据。因此,我们在文章中使用了过滤器行SUSER_SNAME()

提前致谢。

布拉德

4

1 回答 1

3

如果这是推送订阅,则用于连接发布者和分发者的合并代理进程帐户必须是分发数据库中的 db_owner、PAL 的成员、与发布数据库中的用户关联的登录名,并且已阅读快照共享的权限。

如果这是一个请求订阅,则用于与订阅者建立连接的合并代理进程帐户必须是订阅数据库中的 db_owner。用于连接到 Publisher 和 Distributor 的帐户必须是 PAL 的成员、与发布和分发数据库中的用户关联的登录名,并且对快照共享具有读取权限。

这一切都在Replication Agent 安全模型中的代理所需的权限部分中进行了介绍。

于 2013-05-31T19:49:23.627 回答