如何保护SQL Server中的SQL代码
-
06-07-2019 - |
题
是否有可能从任何人的眼睛保护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创建程序文档
不隶属于 StackOverflow