发布“备用/只读”数据库

时间:2018-02-13 21:20:28

标签: sql-server database-replication

我们每小时都会通过SFTP从第三方供应商处收到数据库备份文件。我们将该数据库本地还原为只读数据库。此数据库中的数据是我们公司的Web应用程序数据的摘录。我们在本地恢复它,以便我们可以运行自己的自定义查询。它是只读的原因是因为它只是我们“真实”数据的导入 - 当我们收到并应用它们的下一个更新时,它将在下一个小时被覆盖。这种安排不在我们的控制之下;它是我们的供应商为我们提供数据副本的唯一机制。

出于说明的目的,假设数据库包含1,000个表。反过来,我们希望与我们的不同合作伙伴共享100个表,但只有这些表中的特定行,即它们特定的FacilityID。因此,限制他们可以看到哪些表是不够的,但我们还需要在提供访问权限之前对表进行过滤。

有人建议我创建一个只读用户,以便向我们“下游”的“消费者”公司提供对100个表的访问权限。创建只读用户的问题是因为我认为只允许我限制他们看到的表,而不是过滤,例如使用WHERE子句,我需要在授予它们访问权限之前应用它。

所以我一直在研究推荐in a comment on a different question的复制。由于我们的(1,000表)数据库和我们提供给“消费者”公司(100表)数据库的数据库都是只读的,我不是在寻找双向复制。我不关心他们可能对我们提供的数据所做的更改。我的目标只是为他们提供我们所拥有的一部分。我们将以类似的方式每小时为他们提供一次更新,即通过SFTP向他们提供SQL Server .bak文件。如果他们对数据进行了更改,我们就没有兴趣将它们复制回给我们。

我看到了以下on MSDN

  

您无法复制或使用备用/只读数据库   出版商。需要在其中创建一些系统过程   禁止以只读模式使用的数据库。

是否有在“帮助程序”数据库中创建这些系统过程,让已发布的数据库始终处于待机/只读状态?或者,这种情况是否有更好的方法?

0 个答案:

没有答案