PowerShell中TDE解密过程的事件处理程序

时间:2017-05-28 09:56:03

标签: sql-server powershell tde

下面的代码成功执行解密,但如果数据库很大,则需要一段时间来解密数据库

$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()

我想在解密完成后执行备份。是否有用于识别数据库解密完成的事件处理程序?

1 个答案:

答案 0 :(得分:1)

我没有看到在对象模型中发生加密/解密进程时发生事件的任何事情。但是,你有两种选择。

  1. $ExistingDB.DatabaseEncryptionKey.EncryptionState是一个枚举,详细说明数据库是否正在转换为加密/解密,实际加密/解密等。

  2. 您可以查看sys.dm_database_encryption_keys系统视图。它具有与上面提供的相同的加密状态信息,但也有一个percent_complete列,用于指示转换期间的进度。

相关问题