0

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

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

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

4

1 回答 1

1

我在对象模型中看不到任何在加密/解密进展时发出事件的东西。但是,你有两个选择。

  1. $ExistingDB.DatabaseEncryptionKey.EncryptionState是一个枚举,详细说明数据库是否正在过渡到被加密/解密,实际上是加密/解密等。

  2. 你可以看看sys.dm_database_encryption_keys系统视图。它具有上面提供的相同加密状态信息,但还有一个 percent_complete 列,用于指示转换过程中的进度。

于 2017-05-28T15:38:08.093 回答