2012-09-05 6 views
1

버전이있는 프로젝트에서 작업하고 있습니다. 새 버전을 게시 할 준비가되면 저장 프로 시저를 준비하여 DBA가 데이터베이스를 업데이트합니다. 나는 그를 SP에게 보냈고, 그는 그것을 수행한다. 그러나 DBA가 내 SP 코드를보고 싶지 않습니다. DBA에 코드를 표시하지 않고 저장 프로 시저를 전송할 수 있습니까?안전하게 저장 프로 시저를 전송하십시오.

+4

사회 문제에 대한 기술적 해결책을 찾고있는 것처럼 보입니다. 그리고 그것은 문제를 해결하지 못할 것입니다. DBA가 서버에서 스토어드 프로 시저를 직접 실행하지 못하도록하면, 사용자가 읽을 수없는 프로 시저를 실행하지 않습니다. – Philipp

+2

DBA가'sp_helptext'를 실행하지 못하게하는 원인 http://msdn.microsoft.com/en-us/library/ms176112.aspx? – Jodrell

+2

나는 은행에서 일한다. DBA는 SP를 실행할 인증을 가지고 있지만 그렇지 않습니다. 그러나 응용 프로그램의 보안 책임에 대한 문서에 서명했습니다. 그러므로 은행과 저에게는 신뢰의 문제가 없습니다. DBA는 저장 프로 시저를 변경할 수 있습니다. 적어도, 그는 내 코드를 훔칠 수 있습니다. 나는이 소프트웨어를 개발하는데 6 년을 보냈다. 그리고 나는 그에게 자유롭게 코드를 사용하는 것을 wan't하지 않습니다. 왜 stuckoverflow 사용자가 질문을 가지고 문제가 있습니다. 방법을 알고 있다면 질문에 답하십시오. 문제에 대한 당신의 생각을 묻지 않았습니다. 그것은 사회적 또는 무언가입니까? BLa bla. 솔루션 만 필요합니다. 명확한? – osmanraifgunes

답변

1

하나의 옵션은 암호화 된 텍스트 파일에 SQL 저장 프로 시저를 제공하는 것입니다. 그리고 암호화 된 SQL 텍스트를 읽고 해독 한 다음 선택한 서버에 배포하는 .NET에 자신의 응용 프로그램을 작성하십시오.

.NET에서 작업하는 경우 그러한 app을 작성하는 것이 얼마나 쉬운 지 알 수 있습니다. 저장된 Procs.DBA와 함께 App을 제공하면 App을 사용하여 저장된 proc을 배포 할 수 있습니다. 간단한 시나리오의 경우 SQL 텍스트의 암호를 해독하는 데 필요한 '암호'를 하드 코드 할 수 있지만 PKI를 사용할 수있는보다 민감한 시나리오의 경우 하드 코드 할 수 있습니다.

다른 모든 솔루션과 마찬가지로이 솔루션은 리버스 엔지니어링 할 수 있지만 CLR에 Stored Proc 논리를 다시 작성하는 것보다 더 나은 옵션입니다.

참고 : WITH ENCRYPTION 옵션을 사용하여 저장 프로 시저를 만드는 것으로 가정합니다.

+0

실제로 'WITH ENCRYPTION (암호화 사용)'옵션을 인식하지 못했습니다. +1 – Jodrell

+0

WITH ENCRYPTION이 가장 좋습니다.도움을 주셔서 감사합니다. – osmanraifgunes

0

Phillip이 이미 주석을 달았 기 때문에 저장 프로 시저를 실행하는 사람이라면 읽을 수없는 DB에서 물건을 실행하는 데 큰 문제가 있습니다. 먼저 눈에 코드를 읽을합니다

, 난독 (한 형태 또는 다른 거의 항상 사용할 수 있습니다 - 당신은 그냥 BASE64 인코딩 된 즉시 실행에/디코딩 된 문자열을 사용하는 경우) 시도 그 위의 모든 내용은

을, 당신은 것 암호화 된 저장 프로 시저가 필요하지만 시스템에 따라 다르므로 tsql을 충분히 알지 못합니다.

2

CLR 저장 프로 시저를 제공하고 어셈블리를 난독 화하면 기능을 숨길 수 있습니다.

나는 이것이 WRONG CLR 저장 프로 시저 사용에 대한 동기라고 제안합니다.

+0

답변 해 주셔서 감사합니다. 나는 그것을 시도 할 것이고 당신에게 결과를 알려줄 것이다. – osmanraifgunes

+1

그들은 여전히 ​​SQL 프로필러를 실행할 수 있으며 실제로 SQL 엔진이 어떤 쿼리를 실행하는지 확인할 수 있습니다. 기능 코드를 리버스 엔지니어링하지 못하도록 유능한 사람을 중지시키는 것은 매우 어려울 것입니다. – Jodrell

관련 문제