是否有可能从任何人的眼睛保护SQL 2008存储过程代码?也许有些加密,或像dll一样组装?

有帮助吗?

解决方案

是的,您可以将数据以加密形式保存在数据库中,但如果您这样做,请确保将原始源代码安全地存储在某个地方......

CREATE PROCEDURE dbo.foo 
WITH ENCRYPTION 
AS 
BEGIN 
    SELECT 'foo' 
END

不幸的是,至少有两种方法可以打败这种机制。一种是在执行存储过程时运行SQL事件探查器;这通常可以揭示过程本身的文本,具体取决于存储过程的作用(例如,如果它具有GO批处理,动态SQL等)。如果他们错过了初始安装,用户可以删除存储过程或删除数据库,启动Profiler跟踪,并要求您重新创建它们(在这种情况下,它们将捕获CREATE PROCEDURE语句)。您可以通过在代码中嵌入sp_password来阻止Profiler向snoopers显示文本,作为注释:

CREATE PROCEDURE dbo.foo 
WITH ENCRYPTION 
AS 
BEGIN 
    SELECT 'foo' 
    -- comment: sp_password 
END

查看 MSDN创建程序文档

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top