2016-07-21 4 views
0

한 친구를 위해 SQL Server 2008 R2 데이터베이스가있는 Winforms 응용 프로그램을 개발했습니다.Winform 응용 프로그램의 데이터베이스 보안

&을 친구의 PC에 설치했을 때; 소프트웨어는 데이터베이스 파일을 명확하게 보여줍니다. SQL Server에서 해당 파일을 열면 SQL 쿼리, tbl 구조 등을 볼 수 있습니다.

나는이 모든 것을 내 고객에게 숨기고 싶습니다.

어떻게하면됩니까?

인터넷상의 일부 소프트웨어를 검색합니다. PC에 설치했을 때. 그것은 나에게 어떤 데이터베이스 파일도 보여주지 않습니다. 그들이 어떻게합니까?

도와주세요.

+2

인증을 사용하여 웹 서비스 뒤에 데이터베이스를 숨겨야합니다. 클라이언트에서 데이터베이스로 직접 말하지 마십시오. – SLaks

+0

데이터베이스 개체의 일부를 암호화 할 수 있지만 일부에는 관리자 권한이있는 경우 해독 할 수있는 방법이 있습니다. 데이터베이스 관리자에게 물건을 숨길 방법이 없습니다. – FLICKER

+0

1. 웹 서비스를 사용하면 클라이언트에서 데이터베이스 파일을 숨길 수 없습니다. 2. SQL 2014+ 버전에서 사용 가능한 암호화/암호 해독 옵션 2008 R2를 사용 중입니다. – user3260083

답변

0

응용 프로그램과 데이터베이스가 둘 다 친구의 PC에 배포 된 경우 데이터베이스에 접속하는 것을 차단할 수있는 방법은 거의 없습니다.

SQL Server에는 권한이 부여 된 사용자 (예 : admin)의 스키마보기를 차단하는 기능이 없으며 컴퓨터를 소유하고있는 경우 원래 추가하지 않은 경우에도 여러 가지 방법으로 SQL Server에 관리자로 자신을 표시 할 수 있습니다 관리 역할 또는 주어진 SA 계정 액세스. 스토어드 프로 시저에 모든 것을 넣은 다음 SP를 암호화하는 등의 장애물을 설정할 수 있지만 벽이 아닌 작은 장애물 일뿐입니다.

이것은 SQL Server에만 국한된 것이 아니며, 동일한 문제가 거의 모든 RDBMS에 적용됩니다. 상자를 소유하고 있다면 DB 내용에 도달하는 것이 어렵지 않습니다. 소프트웨어 공급 업체는 수십 년 동안이 작업을 시도해 왔으며 대부분의 경우 합법적으로 IP를 포기하고 보호합니다. 그건 당신에게 위로가 아니지만 현실입니다.

Azure와 같은 서비스를 사용할 수 있다면 Azure에서 앱을 호스팅 할 수 있으며 데이터베이스는 Azure SQL DB 또는 VM의 일반 SQL Server가 될 수 있습니다. 기능 집합과 표면적 영역이 당신을 위해 작동한다면 저는 전자를 추천 할 것입니다; 익숙한 SQL Server 제품과 동일하지 않습니다. 그러나 관리 및 보안 작업이 훨씬 적습니다. Azure에서도이 앱을 사용하면 친구와 클라이언트가 브라우저를 통해 액세스 할 수 있으며 데이터베이스에 직접 액세스 할 수 없습니다. 앱이 친구 또는 고객의 컴퓨터에 로컬로 설치되는 경우에도 데이터에만 액세스 할 수 있도록 앱을 디자인하는 것은 쉽습니다.

관련 문제