Bagaimana cara mengembalikan database "berisi"? [Tutup]

23

Saya baru-baru ini mencoba mengembalikan ke SQL Server pengembangan lokal saya cadangan dari contoh jaringan. Yang mengejutkan saya, saya menerima pesan kesalahan berikut:

Msg 12824, Level 16, State 1, Line 3 Nilai sp_configure 'otentikasi database yang terkandung' harus diatur ke 1 untuk mengembalikan database yang ada. Anda mungkin perlu menggunakan RECONFIGURE untuk mengatur value_in_use. Msg 3013, Level 16, Status 1, Baris 3 KEMBALIKAN DATABASE berakhir secara tidak normal.

Langkah apa yang harus saya ikuti untuk berhasil memulihkan database?

David
sumber
2
Apa versi SQL Server? Kesalahannya cukup jelas tentang resolusi, apakah Anda mencoba mengatur contained database authenticationnilai ke 1 seperti yang dikatakan?
LowlyDBA
1
Saya pikir ini adalah pertanyaan yang valid, jika Anda mencoba mengembalikan file .bacpac Database Azure Sql, ke instance lokal Anda - Anda mendapatkan kesalahan ini. Jawabannya valid untuk memperbaikinya.
Ralph Willgoss

Jawaban:

37

Untuk mengembalikan database yang terkandung ke dalam contoh yang berbeda dari server sql, dalam hal ini server lokal saya, properti " Aktifkan Database Terkandung " harus disetel ke True .

Anda dapat melakukan ini dari studio manajemen:

  1. Klik kanan pada instance server, pilih Properties
  2. Pilih halaman Advanced , atur di bawah Containment nilai properti ke True
  3. Lanjutkan untuk mengembalikan cadangan basis data.
  4. ALTER AUTHORIZATION ON DATABASE::ReplaceThisWithYourDatabaseName TO ReplaceThisWithLeastPrivilegeUser;

Berikut ini adalah baris skrip yang sebenarnya saya gunakan untuk mengaktifkan / menonaktifkan penahanan:

-- 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;

Untuk informasi tambahan, silakan merujuk ke:
http://www.sqlsoldier.com/wp/sqlserver/protectionfromrestoringabackupofacontaineddatabase

David
sumber
2

Sudahkah Anda mencoba melakukan kesalahan yang dijelaskan?

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
Prime03
sumber