使用 SQL 事务复制,更改用户对表的权限是否会触发新快照?

Chr*_*ris 4 replication permissions sql-server-2012 transactional-replication

我希望在 SQL Server 2012 事务复制场景方面获得一些帮助 - 或者只是我对 SQL Server 中存储权限的理解。如果我在事务复制配置中更改发布者对特定表的用户权限(例如授予 SELECT 或 INSERT),是否会更改架构,以便订阅者需要从新快照中提取?

我担心这种更改可能会造成停机时间,即在创建新快照时订阅者实际上处于离线状态。理想情况下,我可以只授予特定用户对发布者或订阅者上复制文章的新权限,而无需重置。我不关心更新的权限从发布者复制到订阅者(事实上,理想情况下他们不会)。提前致谢!

Bra*_*ams 6

如果在初始化或重新初始化订阅服务器之前更改用户对特定表的权限,如果文章属性复制权限设置为 true,则应用快照时权限将复制到订阅服务器。

如果在初始化订阅服务器后更改用户对特定表的权限,则不会即时复制权限,除非您生成新快照并将订阅服务器标记为重新初始化。请注意,文章属性复制权限必须设置为 true。

通常的做法是,如果您需要在初始化订阅服务器后更改用户对特定表的权限,并且您需要在订阅服务器上显示权限而不重新初始化订阅服务器,则将授予权限的脚本发布到订阅服务器使用sp_addscriptexec

我在Executing scripts with sp_addscriptexec有一篇详细介绍 sp_addscriptexec 的帖子

  • 极好的信息!这正是我一直在寻找但无法通过搜索网络找到的内容。非常感谢您的帮助。 (4认同)