服务器配置:跨数据库所有权链接

适用于:SQL Server

使用此选项 cross db ownership chaining 为 SQL Server 实例配置跨数据库所有权链。

此服务器选项使您能够在数据库级别控制跨数据库所有权链接,或者允许在所有数据库中启用跨数据库所有权链接:

  • 如果实例中cross db ownership chaining关闭(0),则对所有数据库禁用跨数据库所有权链接。

  • cross db ownership chaining开启时(1),跨数据库所有权链接适用于所有数据库。

  • 可以使用SET语句的ALTER DATABASE子句为单个数据库设置跨数据库所有权链。 如果要创建新数据库,则可以使用 CREATE DATABASE 语句为新数据库设置跨数据库所有权链接选项。

    除非 SQL Server 实例托管的所有数据库都需要参与跨数据库所有权链接,并且您已经充分了解此设置的安全影响,否则不建议将cross db ownership chaining设置为1

检查跨数据库所有权链的状态

若要确定跨数据库所有权链接的当前状态,请执行以下查询:

SELECT is_db_chaining_on, name FROM sys.databases;

结果 1 表示已启用跨数据库所有权链接。

控制跨数据库的所有权链接

在打开或关闭跨数据库所有权链接之前:

  • 只有 sysadmin 固定服务器角色成员能够启用或禁用跨数据库所有权链接。

  • 在关闭生产服务器上的跨数据库所有权链接之前,请全面测试所有应用程序,包括第三方应用程序,以确保更改不会影响应用程序功能。

  • 在服务器正在运行时,如果指定cross db ownership chainingRECONFIGURE,则可以更改选项sp_configure

  • 如果您的数据库需要跨数据库所有权链,建议的做法是使用sp_configure;然后,对于需要的单个数据库,使用ALTER DATABASE语句启用跨数据库所有权链。