我最近尝试将网络实例的备份还原到本地开发SQL Server。令我惊讶的是,我收到以下错误消息:
消息12824,级别16,状态1,第3行sp_configure值'contained
数据库身份验证'必须设置为1为了还原一个
包含的数据库。您可能需要使用RECONFIGURE设置
value_in_use。消息3013,级别16,状态1,第3行RESTORE DATABASE正在异常终止。
我必须遵循哪些步骤才能成功恢复数据库?
#1 楼
为了将包含的数据库还原到sql Server的其他实例中,在本例中为本地服务器,必须将“启用包含的数据库”属性设置为True。您可以从Management Studio进行此操作:
右键单击服务器实例,选择“属性”
选择“高级”页面,在“包含”下将属性值设置为True
继续恢复数据库备份。
ALTER AUTHORIZATION ON DATABASE::ReplaceThisWithYourDatabaseName TO ReplaceThisWithLeastPrivilegeUser;
以下是我实际用于启用/禁用遏制的脚本行:
-- Enable "contained database authentication"
EXEC sp_configure 'contained', 1;
RECONFIGURE;
-- Disable "contained database authentication"
EXEC sp_configure 'contained', 0;
-- Force disabling of "contained database authentication"
RECONFIGURE WITH OVERRIDE;
有关其他信息,请参阅:http://www.sqlsoldier.com/wp/sqlserver/protectionfromrestingingabackupofcontaineddatabase
#2 楼
您是否尝试过执行错误所描述的内容?USE master
GO
sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
sp_configure 'CONTAINED DATABASE AUTHENTICATION', 1
GO
RECONFIGURE
GO
sp_configure 'show advanced options', 0
GO
RECONFIGURE
GO
评论
什么版本的SQL Server?有关解决方案的错误非常清楚,您是否尝试像说的那样将包含的数据库身份验证值设置为1?我认为这是一个有效的问题,如果您尝试将Azure Sql数据库.bacpac文件还原到本地实例中,则会收到此错误。答案对于解决此问题是有效的。
您是否要添加@RalphWillgoss答案?
@MichaelGreen已经有一段时间了,但是我相信接受的答案对于这种情况是正确的。