答案是:这取决于。如果不能从外部内部LAN(或仅通过VPN)访问私有数据库,则此方案会增加安全性,因为使用WebSite凭据的人对私有DB Server的访问将受到限制(并且还有很多工作要做)进入您的内部网络-在发现入侵和关闭漏洞方面可能很方便)。
如果没有,我认为除了复杂性外,它不会增加任何其他内容。
编辑:
似乎我误解了您的问题,所以让我们看看我现在是否正确理解:IntermDb是一个仅用于连接到PrivateDB的空数据库,或者它是具有自己视图/过程的数据库,该数据库连接到PrivateDB以检索数据?
在第一种情况下,WTF?撕掉它。除非有人想要对其进行审核以更懒惰地描述对PrivateDB的访问(并使WebApp开发人员更加努力地工作),否则这毫无价值。SQL Profiler可以使用DB_ID进行过滤...
在第二种情况下,我维持先前的答案。
编辑:“我仍然不知道这比直接将私有数据库直接连接到公共数据库更安全,因为在同一SQL实例上的所有3个数据库和用于所有3个数据库的登录名都是相同的,并且只能访问无论如何,私有数据库中的特定视图和存储过程”。
拥有中介意味着入侵者将必须在您的代码中进行挖掘以了解 IntermDB的存在-并且必须在其上挖掘您的代码以了解是否存在PrivateDB。
如果将PrivateDB放置在组织LAN / WAN内部的另一台服务器上(如果可能),它可以给管理员足够的时间来检测和阻止入侵的企图。如果您使用同义词,那么此举很顺利,因为您所拥有的只是将它们重建为现有代码的正确位置。
您还将获得其他好处:由于所有代码都必须通过IntermDB来访问PrivateDB中的数据,因此没有开发人员会试图绕过它-并且这种尝试可以很容易地在SQL Server Profiler上发现为PrivateDb数据请求的DB_ID将是WebAppDb。