Я настроил базу данных, которая зашифрована TDE. Теперь мне нужно отключить это шифрование через PowerShell. Я могу сделать какой-то прорыв, но сталкиваюсь с ошибкой ниже

Ошибка: невозможно удалить ключ шифрования базы данных, поскольку он используется в данный момент. Шифрование базы данных необходимо отключить, чтобы можно было удалить ключ шифрования базы данных. однако ключ шифрования отключается, но ключ удаляется, я верю. Ниже скриншот, как это выглядит после первого запуска кода

enter image description here

Below  is the code that I have written/used:

   function set-EncryptionOff($ExistingDB)
{
    $ExistingDB.EncryptionEnabled=$false
    $ExistingDB.Alter();
    $ExistingDB.DatabaseEncryptionKey.Refresh()
    $ExistingDB.DatabaseEncryptionKey.Drop()

}
4
SQLDoctor 27 Май 2017 в 21:01

2 ответа

Лучший ответ

Ты очень близко После того как вы установите EncryptionEnabled в значение false, вам нужно сделать $ExistingDB.Alter(), чтобы сервер действительно это сделал. Как только вы это сделаете, вы можете безопасно удалить ключ шифрования базы данных, используя команду, которая у вас уже есть.

Полный скрипт:

$sqlServer = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $sqlName
$ExistingDB=$sqlServer.Databases.Item($dbname) 
$ExistingDB.EncryptionEnabled=$false
$ExistingDB.Alter()
$ExistingDB.DatabaseEncryptionKey.Refresh()
$ExistingDB.DatabaseEncryptionKey.Drop() #should work now
3
Ben Thul 28 Май 2017 в 03:38

Похоже, что вы можете использовать командлет Azure PowerShell Set-AzureRMSqlDatabaseTransparentDataEncryption для этого:

Включение и отключение TDE в базе данных SQL с помощью PowerShell

Используя Azure PowerShell, вы можете запустить следующую команду, чтобы включить TDE вкл / выкл. Вы должны подключить свою учетную запись к окну PS, прежде чем запустить команду. Настройте пример, чтобы использовать ваши значения для Параметры ServerName, ResourceGroupName и DatabaseName. Для дополнительную информацию о PowerShell см. в инструкции по установке и установке. настроить Azure PowerShell.

..

Чтобы отключить TDE:

Set-AzureRMSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName

"database1" -State "Disabled"

Если используется версия 0.9.8, используйте Set-AzureSqlDatabaseTransparentDataEncryption команда.

Источник:

Mark Wragg 27 Май 2017 в 19:56