是否可以保护 SQL 2008 存储过程代码不被任何人看到?也许一些加密,或者像dll一样组装?
问问题
1473 次
1 回答
4
是的,您可以将其以加密形式保存在数据库中,但如果这样做,请确保将原始源代码安全地存储在某个地方...
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
END
不幸的是,至少有两种方法可以打败这种机制。一种是在执行存储过程的同时运行SQL Profiler;这通常可以显示过程本身的文本,具体取决于存储过程的功能(例如,如果它有 GO 批处理、动态 SQL 等)。如果他们错过了初始安装,用户可以删除存储过程或删除数据库,启动 Profiler 跟踪,并要求您重新创建它们(在这种情况下,他们将捕获 CREATE PROCEDURE 语句)。您可以通过在代码中嵌入 sp_password 作为注释来防止 Profiler 向窥探者透露文本:
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
-- comment: sp_password
END
于 2009-09-11T20:37:36.003 回答