使用 WITH ENCRYPTION 选项
WITH ENCRYPTION 子句对用户隐藏存储过程的文本。下例创建加密过程,使用 sp_helptext 系统存储过程获取关于加密过程的信息,然后尝试直接从 syscomments 表中获取关于该过程的信息。IF EXISTS (SELECT name FROM sysobjects
      WHERE name = 'encrypt_this' AND type = 'P')
   DROP PROCEDURE encrypt_this
GO
USE pubs
GO
CREATE PROCEDURE encrypt_this
WITH ENCRYPTION
AS
SELECT * 
FROM authors
GOEXEC sp_helptext encrypt_this下面是结果集:The object's comments have been encrypted.接下来,选择加密存储过程内容的标识号和文本。SELECT c.id, c.text 
FROM syscomments c INNER JOIN sysobjects o
   ON c.id = o.id
WHERE o.name = 'encrypt_this'下面是结果集:说明  text 列的输出显示在单独一行中。执行时,该信息将与 id 列信息出现在同一行中。
id         text                                                        
---------- ------------------------------------------------------------
1413580074 ?????????????????????????????????e??????????????????????????????????????????????????????????????????????????(1 row(s) affected)

解决方案 »

  1.   

    create proc test(……) with ENCRYPTION
      

  2.   

    只需将你的建立存储过程的语句
    Create procedure procName
    As改为
    Create procedure procName
    with encryption
    As即可
      

  3.   

    创建存储过程时,带
    with ENCRYPTION可以加密,但也有对应的解密方法
    如果你真的觉得这个过程很重要的话,就不要写到数据库中,而是在调用时才由程序来创建并调用,使用完成后再删除.
      

  4.   

    [ WITH
        { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] 
      

  5.   

    所谓的解密方法是sqlserver标准提供的,还是通过第三方软件完成呢?
      

  6.   

    WITH
        { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]