Как защитить код SQL в SQL Server - PullRequest
       26

Как защитить код SQL в SQL Server

3 голосов
/ 12 сентября 2009

Можно ли защитить код хранимой процедуры SQL 2008 от чьих-либо глаз? Может быть, какое-то шифрование или сборка вроде dll?

1 Ответ

4 голосов
/ 12 сентября 2009

да, вы можете сохранить его в базе данных в зашифрованном виде, но если вы это сделаете, убедитесь, что у вас есть оригинальный исходный код, надежно сохраненный где-то ...

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

К сожалению, есть по крайней мере два способа победить этот механизм. Одним из них является запуск SQL Profiler во время выполнения хранимой процедуры; это часто может раскрыть текст самой процедуры, в зависимости от того, что делает хранимая процедура (например, если она имеет пакеты GO, динамический SQL и т. д.). Если они пропустили первоначальную установку, пользователь может удалить хранимые процедуры или удалить базу данных, запустить трассировку Profiler и попросить вас создать их заново (в этом случае они будут захватывать операторы CREATE PROCEDURE). Вы можете запретить Профилировщику раскрывать текст snoopers, встраивая sp_password в код в виде комментария:

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

посмотрите Процедура создания MSDN Документация

...