2009-09-11 1 views

답변

4

이 예는 불행하게도

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

... 그것은 암호화 된 형식으로 데이터베이스를 TI 저장하지만, 당신이 할 경우, 당신은 안전하게 어딘가에 저장되어있는 원래의 소스 코드를 확인 할 수 있습니다, 적어도 두 가지 방법이 있습니다 이 메카니즘을 이기기 위해서. 하나는 저장 프로 시저를 실행하는 동안 SQL 프로필러를 실행하는 것입니다. 저장 프로 시저가 수행하는 작업 (예 : GO 일괄 처리, 동적 SQL 등이있는 경우)에 따라 프로 시저 자체의 텍스트가 표시 될 수 있습니다. 사용자가 초기 설치를 놓친 경우 사용자는 저장 프로 시저를 삭제하거나 데이터베이스를 삭제하고 프로파일 러 추적을 시작한 다음 다시 작성하도록 요청할 수 있습니다.이 경우 CREATE PROCEDURE 문을 캡처합니다. 당신은 주석으로, 코드에서 후 sp_password를 내장하여 누퍼 텍스트를 드러내는에서 프로파일 러를 방지 할 수 있습니다 :

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

보기 MSDN Create Procedure documention

+0

이름을이 방법이 있나요에서? 또는 어쩌면 어떤 링크? – Alkersan

+0

+1 좋은 답변 (개인적으로 관련 기술에 대한 필요성은 보이지 않지만) – ChristopheD

+0

불행히도 SQL 서버에 내장 된 사소한 암호화를 우회하는 방법을 찾으려면 Google에서 5 백만 이하가 필요합니다. 코드를 실제로 보호하려면 상용 솔루션을 찾아야합니다. –