日期:2014-05-18  浏览次数:20416 次

这个问题谁能给个准确的说法?谢谢了
sql   server   2005   中文企业版   sp1中,
创建存储过程使用WITH     ENCRYPTION   加密以后
是否有办法解密看到存储过程的明文?
MS的说法都有矛盾,sql2005联机帮助如是说:
-----------------------
ENCRYPTION  
指示   SQL   Server   将   CREATE   PROCEDURE   语句的原始文本转换为模糊格式。模糊代码的输出在   SQL   Server   2005   的任何目录视图中都不能直接显示。对系统表或数据库文件没有访问权限的用户不能检索模糊文本。但是,可通过   DAC   端口访问系统表的特权用户或直接访问数据库文件的特权用户可使用此文本。此外,能够向服务器进程附加调试器的用户可在运行时从内存中检索已解密的过程。
-------------------------
msdn   网站如是说:
---------------
重要事项:    
存储过程一旦被加密,其定义将无法解密,任何人(包括该存储过程的所有者或系统管理员)都将无法查看该存储过程的定义。  
-----------------
到底哪个对?
如果能解密,该如何解密?
另外,如果用证书签名,是不是和加密效果类似呢?
谢谢


------解决方案--------------------
1、解密是肯定的,只是外部尚不知道解密的途径而已

2、加密过的SQL Server 2000存储过程已经可以解密
------解决方案--------------------
存储过程一旦被加密,其定义将无法解密,任何人(包括该存储过程的所有者或系统管理员)都将无法查看该存储过程的定义。
------------------------------------------------
这只是说外部无法解密SQL Server 2005中加密的存储过程,并不代表数据库自身不能解密。