2011-03-16 4 views
1

Access 2000에 데이터베이스가있는 Windows 응용 프로그램을 개발하고 있습니다. 저는 항상 개발 중이므로 데이터베이스 보안에 대한 지식이 거의 없습니다. 그리고 지금, 나는 그것을 배우고 어려움을 겪을 때입니다.Access 2000 데이터베이스 보안

데이터베이스는 네트워크 서버의 공통 공유 위치에 있습니다. 아무도 그 위치에서 열 수 없으며 여전히 Windows 응용 프로그램을 통해 데이터를 읽고 쓸 수 있도록 데이터베이스를 보호하는 방법을 알고 싶습니다.

답변

1

하나의 Windows 계정 만 액세스 할 수 있도록 ACL을 설정해야하는 것처럼 들리지만 Windows 응용 프로그램을 사용하여 해당 계정을 가장합니다.

1

암호를 모른 채 아무도 열 수 없도록 데이터베이스에 암호를 넣을 수 있습니다. 응용 프로그램은 데이터베이스 연결을 수행 할 때 암호를 전달해야하지만 꽤 표준입니다.

단점은 Access 데이터베이스의 암호 보호가 실제로 강력하지 않기 때문에 기술적으로 재능있는 사람이 범죄의 의도를 가지고있을 수 있습니다.

2

데이터 보안을 원할 경우 데이터 저장소로 Jet/ACE 이외의 것을 사용해야합니다.

귀하의 질문에 대한 귀하의 마지막 문장은 명확하지 않지만 모순 된 것처럼 보입니다. Jet/ACE 데이터베이스를 편집하려면 사용자가 파일 시스템의 데이터베이스에 대한 전체 CHANGE 권한을 가지고 있어야합니다. 이 문제를 해결할 방법이 없습니다.

확실히 MDB 형식을 사용하면 Jet User-Level Security를 ​​사용할 수 있지만 오래 전에 금이 갔고 Google에 약 10 분이 걸리고 문제를 해결하는 데 필요한 항목을 구입합니다. 또한 까다 롭고 올바르게 수행하기가 어렵습니다 (많은 사람들이 Jet ULS를 사용하여 데이터베이스 보안을 유지하면서 일을 끝내지 만 사물을 더 복잡하게 만드는 것은 끝내줍니다).

데이터베이스 암호는 A2007의 ACCDB 형식으로 암호화가 훨씬 강하고 (더 이상 쉽게 깨질 수는 없지만) 보안 극장입니다. 그러나 프런트 엔드 응용 프로그램에서 암호를 인코딩해야합니다. 수행중인 작업을 모르는 경우 16 진수 편집기를 사용하여 암호를 찾을 수있는 공개 초대장입니다.

보안이 필요한 경우 실제 데이터 보안을 제공하는 서버 데이터베이스 백엔드로 업 사이즈하십시오.

2

이전에 Access 2000에서 수행 한 작업은 프런트 엔드 데이터베이스와 백 엔드 데이터베이스를 만드는 것입니다. 백엔드에는 원시 데이터 만 포함됩니다. 프론트 엔드는 양식, 보고서 등을 포함 할 것입니다.

백엔드에서 나는 시프트 키 바이 패스를 비활성화하고 활성화하는 데 사용되는 양식을 만들 것입니다. 양식에 '바이 패스 사용'및 '바이 패스 사용 안 함'버튼이 있습니다. 또한 암호를 입력 할 수있는 텍스트 상자가 있습니다. 그것을 사용하려면, 당신은 암호를 입력하고 버튼을 누르십시오. 그런 다음 양식이 시작 아래에 지정되도록 데이터베이스를 설정하십시오. Shift 키가 비활성화되어있는 한 데이터베이스에 들어가서 데이터를 직접 수정할 수 없습니다.

프런트 엔드에서 나는 데이터베이스에 들어가서 링크 된 테이블에서 데이터를 편집하는 것을 막는 동일한 기능을 적용합니다. 프런트 엔드의 Jet 보안을 사용하여 액세스 권한을 관리합니다.