응용 프로그램과 데이터베이스가 둘 다 친구의 PC에 배포 된 경우 데이터베이스에 접속하는 것을 차단할 수있는 방법은 거의 없습니다.
SQL Server에는 권한이 부여 된 사용자 (예 : admin)의 스키마보기를 차단하는 기능이 없으며 컴퓨터를 소유하고있는 경우 원래 추가하지 않은 경우에도 여러 가지 방법으로 SQL Server에 관리자로 자신을 표시 할 수 있습니다 관리 역할 또는 주어진 SA 계정 액세스. 스토어드 프로 시저에 모든 것을 넣은 다음 SP를 암호화하는 등의 장애물을 설정할 수 있지만 벽이 아닌 작은 장애물 일뿐입니다.
이것은 SQL Server에만 국한된 것이 아니며, 동일한 문제가 거의 모든 RDBMS에 적용됩니다. 상자를 소유하고 있다면 DB 내용에 도달하는 것이 어렵지 않습니다. 소프트웨어 공급 업체는 수십 년 동안이 작업을 시도해 왔으며 대부분의 경우 합법적으로 IP를 포기하고 보호합니다. 그건 당신에게 위로가 아니지만 현실입니다.
Azure와 같은 서비스를 사용할 수 있다면 Azure에서 앱을 호스팅 할 수 있으며 데이터베이스는 Azure SQL DB 또는 VM의 일반 SQL Server가 될 수 있습니다. 기능 집합과 표면적 영역이 당신을 위해 작동한다면 저는 전자를 추천 할 것입니다; 익숙한 SQL Server 제품과 동일하지 않습니다. 그러나 관리 및 보안 작업이 훨씬 적습니다. Azure에서도이 앱을 사용하면 친구와 클라이언트가 브라우저를 통해 액세스 할 수 있으며 데이터베이스에 직접 액세스 할 수 없습니다. 앱이 친구 또는 고객의 컴퓨터에 로컬로 설치되는 경우에도 데이터에만 액세스 할 수 있도록 앱을 디자인하는 것은 쉽습니다.
인증을 사용하여 웹 서비스 뒤에 데이터베이스를 숨겨야합니다. 클라이언트에서 데이터베이스로 직접 말하지 마십시오. – SLaks
데이터베이스 개체의 일부를 암호화 할 수 있지만 일부에는 관리자 권한이있는 경우 해독 할 수있는 방법이 있습니다. 데이터베이스 관리자에게 물건을 숨길 방법이 없습니다. – FLICKER
1. 웹 서비스를 사용하면 클라이언트에서 데이터베이스 파일을 숨길 수 없습니다. 2. SQL 2014+ 버전에서 사용 가능한 암호화/암호 해독 옵션 2008 R2를 사용 중입니다. – user3260083