2014-11-06 113 views
0

我有一个用户数据库被锁定到除登录服务以外的所有服务。这为所有相关服务提供了单点体验。如何保持2个SQL Server表列在不同的数据库中同步

我希望能够访问用户从单独的数据库显示名称,但由于访问限制,我需要存储在请求服务的数据库信息。

如果SecureDatabase.UserTable包含用户名和显示名称,我怎么能保持这个数据与UnsecureDatabase.UserTable同步。

我现在唯一能想到的方法是,当用户登录到网站并对不安全的数据库执行Upsert时,从票证上的单点登录提出索赔,但这意味着显示名称不会实时更新(也永远不会,如果用户从未登录到特定网站再次)

有没有一种方法,我可以实时实现这一目标。我正在运行Sql Server 2014标准。

+0

有没有原因你不能使用触发器或复制? – 2014-11-06 13:04:07

+0

我没有尝试复制,但我的问题是当我创建一个订阅它下降并重新创建表。这意味着它会丢失它上面的所有索引以及任何已经创建到其他表的关系。我不确定是否有解决方法?如果这样复制将是完美的。 – Oli 2014-11-06 15:40:22

回答

0

也许跨国复制可以使用,因为我相信快照复制再现了表。如果您必须使用快照复制,则可能会运行SQL代理作业以在快照完成后重新创建所需的关系(根据表大小,使用情况等,此第二种情况可能不是最佳方式)。

对于索引,根据二次服务器如何使用中的数据,所需要的索引,可以不必是相同的。

+0

我曾经/正在使用交易。随着索引复制,我只是确保我在辅助主要上创建了正确的索引。至于关系......这是我必须生活的东西,直到我找出一种方式。 – Oli 2014-11-10 01:38:30