Вопрос

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

Это было полезно?

Решение

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

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 .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top