适用于: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 chaining和RECONFIGURE,则可以更改选项sp_configure。如果您的数据库需要跨数据库所有权链,建议的做法是使用
sp_configure;然后,对于需要的单个数据库,使用ALTER DATABASE语句启用跨数据库所有权链。