contained database authentication(服务器配置选项)

适用于: 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

示例

下面的示例对 数据库引擎的实例启用包含的数据库。

sp_configure 'contained database authentication', 1;  
GO  
RECONFIGURE;  
GO  

另请参阅

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