我正在使用包含一系列应用程序的所有表的数据库(我们称之为 DB_data)。为了尽量减少升级期间的停机时间,我们创建了一个外观数据库(我们称之为 DB_facade),它对 DB_data 中的每个表都有一个视图。它还包含与这些视图相反的所有函数和存储过程。
在尝试锁定 DB_data 中的安全性时,我们已经对 DB_data 中的所有用户的所有表进行了拒绝。所有这些用户也已在 DB_facade 中创建并具有视图权限。
这里的问题是,由于跨数据库所有权链接 DB_data 中的 DENY 覆盖了 DB_facade 中的 GRANT。
由于潜在的安全问题,我想避免为这两个数据库打开所有权链接(尽管在我最初的测试中,这似乎解决了访问问题)。此外,我们正在尝试尽量减少对应用程序的影响,因此要求所有访问都通过存储过程和使用证书(例如)是行不通的。
有没有人对如何处理这个问题有任何其他建议?
谢谢!