Мы получаем ошибку T-SQL (SQL Server 2008 R2) в сертификате резервного копирования:
ERROR_NUMBER 15151, SEVERITY 16, СОСТОЯНИЕ 1, ПРОЦЕДУРА -, ЛИНИЯ 8, СООБЩЕНИЕ: Невозможно найти сертификат «certificate1», поскольку он не существует или у вас нет разрешения.
Мы можем увидеть сертификат в master.sys.certificates.
Наш псевдокод:
скопировать неприкрепленный template_db в db1
attach db1
создать сертификат1 (в хранимой процедуре в master db)
сгенерировать @ пароль
КЛАВИША СОЗДАНИЯ КОДА БАЗЫ ДАННЫХ… ШИФРОВАНИЕ СЕРТИФИКАТОМ СЕРВЕРА '+ @ сертификата_имя +… (в хранимой процедуре в db1)
включить Прозрачное шифрование базы данных для db1 с использованием certificate1.
(N'ALTER DATABASE '+ @ db_name + N' SET ENCRYPTION ON ')
СЕРТИФИКАТ РЕЗЕРВНОГО КОПИРОВАНИЯ + имя сертификата + N
TO FILE = '' '+ @ certificate_file_path + N' ''
С ЧАСТНЫМ КЛЮЧОМ (
FILE = '' '+ @ private_key_file_path + N' '',
ШИФРОВАНИЕ ПО ПАРОЛЮ = '' '+ @ пароль + N' '' '
Чтобы попытаться обойти ошибку, мы каждый раз тестировали три способа с кодом BACKUP CERTIFICATE в разных базах данных, включая db1 и master. Все получают ту же ошибку.
Есть идеи? Спасибо.