适用于:SQL Server
使用此选项 contained database authentication 可在 SQL Server 数据库引擎实例上启用包含的数据库。
使用此服务器选项可以控制 contained database authentication。
实例关闭(
0)时contained database authentication,无法创建包含的数据库或附加到数据库引擎。当实例处于 (
1) 时contained database authentication,可以创建包含的数据库,或附加到数据库引擎。
包含的数据库包括定义数据库所需的所有数据库设置和元数据,它与安装数据库的 数据库引擎 实例没有配置依赖关系。 用户可以连接到数据库而无需在 数据库引擎 级别对登录名进行身份验证。
将数据库与数据库引擎隔离可以轻松地将数据库移到另一个 SQL Server实例。 在数据库中包括所有数据库设置有利于数据库所有者管理数据库的所有配置设置。 有关包含的数据库的详细信息,请参阅 Contained Databases。
注意
始终为 SQL 数据库和 Azure Synapse Analytics 启用包含的数据库,并且无法禁用。
如果 SQL Server 的实例包含任何包含的数据库,contained database authentication则可以使用RECONFIGURE WITH OVERRIDE该语句将0设置设置为该数据库。
0设置为contained database authentication禁用包含的数据库的包含数据库身份验证。
重要
启用包含的数据库后,具有 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