我们决定在SQL Server 2008环境中实现跨数据库所有权链接,这是应用程序数据库和报告数据库的复制。报告db是指向(复制的)app db的视图。通过启用此功能,我们可以授予读取视图的访问权限,但不允许读取基础表。
我的问题是我们将在生产中实施这一点 - 我们的风险是什么?我需要知道我们的退出计划需要多么复杂......谢谢!
答案 0 :(得分:3)
如果您负责这两个数据库,这似乎是足够好的解决方案。但是,如果两个数据库中都有不同的所有者,那么一个数据库的所有者可以访问其他数据库的对象而无权这样做。
例如,我是db1的所有者,拥有shema dbo。您是db2的所有者,拥有shema dbo。我是db1的用户,但没有权限访问数据库中的任何dbo对象。如果我在我的数据库db2中编写过程,则从dbo.SomeTable中选择数据,然后由于所有权链,现在检查我是否可以访问db2中的dbo.SomeTable。
有关此主题的精彩文章可以找到here。