适用于:SQL Server
使用此选项 contained database authentication 可在 SQL Server 数据库引擎实例上启用包含的数据库。
使用此服务器选项可以控制 contained database authentication。
对于该实例,当
contained database authentication处于关闭状态(0)时,将无法创建包含数据库,也无法将其附加到数据库引擎。当实例的
contained database authentication处于启用状态 (1) 时,可以创建包含的数据库,或将其附加到数据库引擎。
包含的数据库包括定义数据库所需的所有数据库设置和元数据,它与安装数据库的 数据库引擎 实例没有配置依赖关系。 用户可以连接到数据库而无需在 数据库引擎 级别对登录名进行身份验证。
将数据库与数据库引擎隔离可以轻松地将数据库移到另一个 SQL Server实例。 在数据库中包括所有数据库设置有利于数据库所有者管理数据库的所有配置设置。 有关包含的数据库的详细信息,请参阅 Contained Databases。
注意
包含的数据库对于 SQL 数据库 和 Azure Synapse Analytics 始终处于启用状态,不能禁用。
如果某个 SQL Server 实例包含任何包含的数据库,则可以使用 RECONFIGURE WITH OVERRIDE 语句将 contained database authentication 设置为 0。 将 contained database authentication 设置为 0 将禁用已包含数据库的已包含数据库身份验证。
重要
启用包含的数据库后,具有 ALTER ANY USER 权限的数据库用户(如db_owner和db_accessadmin数据库角色的成员)可以授予对数据库的访问权限,并通过这样做授予对 SQL Server 实例的访问权限。 这意味着,对服务器的访问的控制不再局限于 sysadmin 和 securityadmin 固定服务器角色的成员,以及具有服务器级别 CONTROL SERVER 和 ALTER ANY LOGIN 权限的登录名。
在允许包含的数据库之前,应了解与包含的数据库相关的风险。 有关详细信息,请参阅 Security Best Practices with Contained Databases。
示例
以下示例在数据库引擎实例上启用包含数据库。
EXECUTE sp_configure 'contained database authentication', 1;
GO
RECONFIGURE;
GO