Eu tenho um aplicativo Windows Form. Ele permite que os usuários restaurem um banco de dados SQL Express.
A versão mais recente do SQL Server no aplicativo agora é o SQL Server 2017. O cliente pode restaurar um backup antigo de um banco de dados SQL Server 2008 R2.
Desejo habilitar o Always Encrypted (AE) após realizar a restauração usando C#.
Alguém poderia me ajudar a conseguir isso?
Não há problema em habilitar o AE para um novo banco de dados. Eu gostaria de ter AE depois de restaurar um banco de dados antigo no aplicativo. A restauração acontece por meio de um comando T-SQL.
Tentei habilitar o AE usando o PowerShell. Estou recebendo sqlserver
erros de módulo. Existe alguma maneira de adicionar AE usando T-SQL?
O erro é:
System.Management.Automation.CommandNotFoundException:
'O termo 'Get-SqlDatabase' não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa operável. Verifique a ortografia do nome ou, se um caminho foi incluído, verifique se o caminho está correto e tente novamente.'
Este erro no PowerShell; no entanto, eu realmente quero fazer AE sem o PowerShell em C#.
Eu tentei:
Alter table test3
alter column C3 varchar(50) COLLATE Latin1_General_BIN2
ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK_Auto1],
ENCRYPTION_TYPE = Deterministic,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL
Este comando não funciona quando há dados na tabela.
Eu poderia conseguir sempre criptografado usando c#. gerar script powershell usando o estúdio de gerenciamento.
Adicione os módulos de importação abaixo no script na parte superior.
Em seguida, execute o script PS usando o código abaixo