2013-02-11 2 views
0

현재 로컬 Access DB (.mdb 파일)에 연결하고 여러 테이블의 데이터를 사용하는 독립 실행 형 Windows Form 응용 프로그램이 VB.NET으로 작성되었습니다. DB에 쓰거나 수정하지 않습니다. 사용자가 액세스 할 수 없도록이 DB를 보호하는 방법을 파악하려고합니다. 최선의 방법은 DB를 프로젝트 내에 임베디드 리소스로 저장하는 것입니다. 그러나, 나는이 일을하는 방법을 알아낼 수 없습니다.내장 데이터베이스에 VB.net 연결

.mdb 파일을 프로젝트 리소스에 추가하고 속성을 "포함 리소스"및 "복사 안 함"으로 설정했습니다. 하지만 지금은 DB를 참조하여 연결을 만드는 방법은 무엇입니까?

내가 연결 문자열 "공급자 = Microsoft.Jet.OLEDB.4.0; 데이터 원본 = MyDatabase.mdb"사용하기 전에 내가 포함 된 리소스를 참조하여 이제 연결 문자열을 쓰기 어떻게

를?

+0

액세스 데이터베이스에 암호 만 설정 했습니까? –

+0

파일을 숨기고 암호로 보호하더라도 누군가 파일에 접근하기를 원하지 않습니다. 비밀번호를 해킹 할 수있는 방법이 있다고 들었습니다. –

+0

DB를 xml 또는 그와 비슷한 것으로 내보내고 데이터베이스 연결과 반대되는 스트림 리더를 사용하는 것이 더 좋습니까? –

답변

0

죄송합니다.

내 솔루션은 제안 된 것보다 훨씬 간단했습니다. .mdb 파일을 프로젝트 자체에 추가하면 전체 "자원"비즈니스가 엉망이 아닙니다. 그런 다음 파일의 Copy to Output 속성을 "Do not copy"로 설정하십시오. 따라서 .mdb는 ​​앱에 컴파일되지만 파일 자체는 사용자가 사용할 수 없습니다.

2

"최선의 방법은 DB를 프로젝트 내에 임베디드 리소스로 저장하는 것입니다."

일반적으로 Access dbs를 백엔드로 사용하는 DotNetNuke 개발자는 웹에서 리소스 파일을 다운로드 할 수 없으므로 .mdb를 .resources로 이름을 변경했습니다.

"이 같은 XML 또는 무언가에 DB를 내보내고 데이터베이스 연결에 반대 한 다음 스트림 리더를 사용하는 것이 더 있을까?"

번호 You cant read an Access file from a stream 그리고 dB가 Access 데이터베이스보다 적은 동시 지원이있는 XML.

당신이 정말로 데이터를 보호해야하는 경우

는, 당신은 절대적으로 잘못된 데이터 저장소를 선택했습니다.

@JohnBustos는 "원격 DB를 저장하고 인터넷을 통해 프로그램 액세스를 가지고있다."썼다

제발하지 마세요. 무엇이라도 네트워크 공유에두고 액세스를 제한하면. 그런 다음 액세스 dB를 SQL Server로 업그레이드하십시오.

0

예, 동일한 문제가 있었으며 XML 또는 포함 된 TXT 파일로 데이터베이스를 변환했습니다. 그것은 아주 잘 작동합니다!

관련 문제