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)