2010-02-01 3 views
0

로컬 SQL Server 파일을 사용하여 data.i를 저장하는 응용 프로그램이이 응용 프로그램의 설치 패키지를 만들었지 만 사용자 광경에서 데이터베이스 파일 (* .mdf)을 숨기려고합니다. 사실 나는 그/그녀가 내 Windows 응용 프로그램에서 이것을 사용할 수있는 동안 데이터베이스의 테이블이나 다른 세부 사항을 볼 수 없도록하고 싶지 않습니다. 거기에 어떤 해결책이 있습니까?데이터베이스 파일을 사용자가 볼 수 없게 만드시겠습니까?

+0

정확히 사용자가 수행하는 것을 막으려 고 시도하고 있습니까? – JeffO

+0

에서 테이블과 테이블 간의 관계를 볼 수 없습니다. –

+0

몇 가지 생각을하고 나서 IsolatedStorage 아이디어가 좋다고 생각하지 않습니다. 나는 내 대답을 삭제했습니다. –

답변

0

당신은 그것을 숨겨진 파일을 만들 수 있습니다

File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Hidden); 

을하지만 가장 좋은 건 사용자의 컴퓨터에서 기밀 아무것도 저장하지 않는 것입니다, 보안을 체포 할 수있는 방법은 항상있다. 당신은 또한 데이터베이스를 암호화 할 수 있지만, 주석자가 지적했듯이 이것은 또한 안전하지 못하다.

+0

간단한 구성과 마찬가지로 폴더/옵션에서 사용자는 자신의 컴퓨터에있는 모든 단일 파일을 볼 수 있으며 특히 컴퓨터 관리자 인 경우에만 볼 수 있습니다. 내가 아는 대부분의 네트워크 에서처럼. –

+1

데이터베이스를 암호화해도이 경우에는별로 도움이되지 않습니다. 키가 사용자로부터 숨겨져있는 경우 이는 프로그램에서 하드 코딩되거나 원격 사이트에서 다운로드되었음을 의미합니다. 전자는 반사경만으로 깨질 수 있습니다. 후자는 스니퍼 또는 프록시에 의해 선택 될 수 있습니다. – Aaronaught

+0

사용자 컴퓨터에서 로컬 데이터베이스를 사용합니다. –

1

데이터베이스가 사용자 시스템에 있고 사용자가 액세스하는 것이 가장 우려되는 경우 아키텍처를 다시 평가할 수 있습니다. 웹 솔루션이 실행 가능합니까?

+0

아니요 로컬입니다. –

0

최상의 솔루션은 데이터베이스 자체의 권한을 제한하는 것입니다. 저장된 데이터를 사용하여 데이터에 액세스하는 경우 테이블에서 사용자에 대한 선택/삽입/업데이트 또는 삭제 권한을 부여하지 않고 볼 수 없으며 실행할 수있는 저장된 procs 만 수행 할 수 있습니다 . 물론 동적 SQL을 사용하는 경우에는 작동하지 않지만 어쨌든 그렇게하지는 마십시오.

관련 문제