문제

SQL 2008 저장 절차 코드를 다른 사람의 눈으로부터 보호 할 수 있습니까? 어쩌면 암호화 또는 DLL과 같은 조립일까요?

도움이 되었습니까?

해결책

예, 데이터베이스를 암호화 된 양식으로 저장할 수 있지만, 그렇다면 원래 소스 코드가 어딘가에 안전하게 저장되어 있는지 확인하십시오 ...

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

불행히도,이 메커니즘을 물리 칠 수있는 두 가지 방법이 있습니다. 하나는 저장 프로 시저를 실행하는 동안 SQL 프로파일 러를 실행하는 것입니다. 이것은 저장된 절차가하는 일 (예 : 배치, 동적 SQL 등)에 따라 절차 자체의 텍스트를 종종 공개 할 수 있습니다. 초기 설치를 놓친 경우 사용자는 저장된 프로 시저를 삭제하거나 데이터베이스를 삭제하고 프로파일 러 추적을 시작한 다음 다시 만들어달라고 요청할 수 있습니다 (이 경우 프로 시저 작성 문을 캡처합니다). 코드에 SP_PASSWORD를 포함하여 프로파일 러가 스누퍼에게 텍스트를 공개하는 것을 방지 할 수 있습니다.

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

보다 MSDN은 절차를 만듭니다 문서

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top