У меня более 30 дБ, которые зашифрованы с помощью TDE.Чтобы сделать резервную копию базы данных, вы должны отключить шифрование и сбросить ключ шифрования, который я создал, который выводит инструкцию «ALTER DATABASE SET ENCRYPTION OFF».Но я хочу казни, в которой мне не нужно исполнять каждую отдельно.
Этот оператор дает вам текущий статус шифрования БД.
3 = Шифрование «включено»
1 = Шифрование «выключено»
SELECT e.encryption_state,d.name, e.percent_complete
FROM sys.databases d
INNER JOIN
sys.dm_database_encryption_keys e ON d.database_id = e.database_id;
курсор:
DECLARE @dbName nvarchar(MAX) =''
DECLARE @sql nvarchar(MAX) = ''
DECLARE Crs CURSOR LOCAL FOR
SELECT d.name
FROM sys.databases d
INNER JOIN
sys.dm_database_encryption_keys e ON d.database_id = e.database_id
where d.name not like 'tempdb'
OPEN Crs
FETCH NEXT FROM Crs into @dbName
WHILE @@FETCH_STATUS = 0
BEGIN
select @sql
SET @sql= 'use ' + @dbName +
'; ALTER DATABASE ' + @dbName + ' SET ENCRYPTION OFF;
use ' + @dbName + '; drop database encryption key; '
print @sql
FETCH NEXT FROM Crs into @dbName
END
CLOSE Crs
DEALLOCATE Crs
Так что теперь мне нужно встроить цикл, который проверяет активный статус шифрования.Если 1, то отпустите клавишу, иначе подождите, пока статус не изменится на 1. Любые идеи ??
Надеюсь, все было понятно.