I am reading about cross db ownership chaining Server Configuration Option
It talks about how and why to use (or not) this option and says
Setting cross db ownership chaining to 1 is not recommended unless all of the databases hosted by the instance of SQL Server must participate in cross-database ownership chaining and you are aware of the security implications of this setting.
It also offers this code to check.
SELECT is_db_chaining_on, name FROM sys.databases;
According to Server Configuration Options (SQL Server) the defualt value for 'cross db ownership chaining' is 0 (zero)
When I run it on my servers, old, new or whatever they all seem have it enabled on master, tempdb, and msdb. I checked a few from SQL 2012 to SQL 2017, Enterprise and Standard editions.
I did find that it where it is set to on by default but not why.
- tempdb settings Can not be altered
- master settings Can not be altered
- msdb settings Can be altered
If it is bad, why is it on by default on system databases?
Why am I not finding anything talking about why it is on by default on system databases?