PowerShell 是执行此操作的最佳方式。您可以即时加密和解密列。首先,通过右键单击表并选择“加密列”来启动始终加密向导。接下来,通过向导,直到您进入“运行设置”。在这里,您可以选择生成 ps 脚本并保存它。制作脚本的副本。一个是用于解密列的脚本,另一个是用于加密列的脚本。在文本编辑器中打开脚本并根据需要进行编辑。在 PowerShell 中执行。我在下面提供了一个示例,说明如何使用已编辑的 PowerShell 脚本解密列。在此处阅读文档:
https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/configure-column-encryption-using-powershell?view=sql-server-ver15
解密两列的示例 PowerShell 脚本
#由 SQL Server Management Studio 于 2020 年 5 月 14 日下午 4:41 生成
导入模块 SqlServer
#设置连接和数据库SMO对象
#$password = "你的密码"
$sqlConnectionString = "数据源=BLAH\MSSQL2014;初始目录=BLAHDB;用户ID=sa;密码=$password;MultipleActiveResultSets=False;连接超时=30;Encrypt=False;TrustServerCertificate=False;数据包大小=4096 ;应用程序名称="Microsoft SQL Server Management Studio""
$smoDatabase = Get-SqlDatabase -ConnectionString $sqlConnectionString
#如果您的加密更改涉及 Azure Key Vault 中的密钥,请取消注释以下行之一以进行身份验证:
#* 提示输入用户名和密码:
#Add-SqlAzureAuthenticationContext -Interactive
#* 输入客户端 ID、机密和租户 ID:
#Add-SqlAzureAuthenticationContext -ClientID '' -Secret '' -Tenant ''
#更改加密架构
$encryptionChanges = @()
#为表[dbo].[blah_table]添加更改
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName dbo.blah_table.field1 -EncryptionType Plaintext
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName dbo.blah_table.field2 -EncryptionType Plaintext
Set-SqlColumnEncryption -ColumnEncryptionSettings $encryptionChanges -InputObject $smoDatabase