cross db ownership chaining(服务器配置选项)

适用于:SQL Server

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

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

  • 如果实例的 cross db ownership chaining 为关(设置为 0),将禁用所有数据库的跨数据库所有权链接。

  • 如果实例的 cross db ownership chaining 为开(设置为 1),将启用所有数据库的跨数据库所有权链接。

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

    建议不要将 cross db ownership chaining 设置为 1,除非 SQL Server 实例所驻留的所有数据库都必须参与跨数据库所有权链接,并且你了解此设置隐含的安全问题。

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

SELECT is_db_chaining_on, name FROM sys.databases;

结果为 1 指示启用了“跨数据库所有权链接”。

控制跨数据库所有权链接

在打开或关闭跨数据库所有权链接之前,请注意下列事项:

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

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

  • 如果使用 sp_configure 指定 RECONFIGURE,则在服务器运行时可以更改 cross db ownership chaining选项。

  • 如果有数据库需要跨数据库所有权链接,建议使用 sp_configure 为实例禁用 cross db ownership chaining选项;然后使用 ALTER DATABASE 语句启用需要此功能的各个数据库的跨数据库所有权链接。

另请参阅

ALTER DATABASE (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL)
服务器配置选项 (SQL Server)
sp_configure (Transact-SQL)
RECONFIGURE (Transact-SQL)