我正在阅读有关跨数据库所有权链接服务器配置选项的信息
它讨论了如何以及为什么使用(或不使用)这个选项并说
不建议将跨数据库所有权链接设置为 1,除非 SQL Server 实例托管的所有数据库都必须参与跨数据库所有权链接,并且您了解此设置的安全隐患。
它还提供此代码进行检查。
SELECT is_db_chaining_on, name FROM sys.databases;
根据服务器配置选项 (SQL Server),“跨数据库所有权链接”的默认值为 0(零)
当我在我的服务器上运行它时,旧的、新的或任何它们看起来都在 master、tempdb 和 msdb 上启用了它。我检查了从 SQL 2012 到 SQL 2017、企业版和标准版的几个。
我确实发现它默认设置为打开但不知道为什么。
如果它不好,为什么它在系统数据库上默认打开?
为什么我找不到任何关于为什么系统数据库默认启用它的内容?
我一直在寻找这背后的原因。我发现的一切都是某种版本
显然是系统数据库;master、tempdb 和 msdb 是相互依赖的。想必在 SQL 开发的早期,一些微软开发人员选择了使用跨数据库链接来解决访问问题,并且一直没有更新。
Microsoft 建议不要使用其中的另一个,但它们依赖于它。