设置每个参数的加密

Set encryption per parameter

我是 T-SQL 的新手,我遇到了以下问题:

是否可以为每个参数设置加密?像这样:(伪代码)

create or alter procedure [db].[my_new_proc]
   @Parameter1 int
   @Parameter2 int
   @ParEncryptYN bit

if @ParEncryptYN = 1
  AS
else
  WITH ENCRYPTION AS
end
begin
...
end

我知道如果在那里我不能使用,这就是我问的原因。

感谢任何帮助。谢谢

根据 OP 的解释,他们正在寻找一种方法来保护部署在客户端环境中的 SP 中的 T-SQL,问题可以得到澄清。

无法使用 SP 的参数来控制 SP 是否加密。这是因为 SP 在 创建 时加密,而不是在 执行.

时加密

一种允许 SP 在开发中被更改但在生产中受到保护的简单方法是简单地创建 SP,在开发中不加密,在生产中加密。

比如在你的开发环境中:

CREATE PROCEDURE [db].[my_new_proc]
   @Parameter1 int
   @Parameter2 int
AS
BEGIN
    ...
END

在您的生产环境中:

CREATE PROCEDURE [db].[my_new_proc]
   @Parameter1 int
   @Parameter2 int
  WITH ENCRYPTION
AS
BEGIN
    ...
END