2009-05-22 1 views
0

Microsoft Dynamics GP에 문제가 발생했으며 이것이 원인인지 조사하기 위해 노력하고 있지만 SQL Server에 대한 액세스 문제 일 수 있습니다. GP는 SQL Server에 데이터를 저장하고 MS Access는 테이블 데이터에 액세스하는 데 사용됩니다. 프로덕션 데이터베이스에서 일부 데이터가 누락 된 것으로 나타납니다. 불행하게도, 나는 Access에 대해 무엇을하고 있는지 알지 못합니다. 왜냐하면 그것이 나에게 공개되지 않기 때문입니다. 간단한 해결책은 데이터를 잃어 버렸는지 확인하기 위해 Access 사용을 중단하라고 알려주는 것입니다. 그러나 이것을 제안하기 전에 문서화 된 문제를 알고 싶습니다.MS Access를 알고 있어야하는 SQL Server 데이터베이스에 연결하는 데 문제가 있습니까?

그래서 무슨 일이 일어나고 있는지에 대한 가장 정확한 추측을하기 위해 SQL Server와 백엔드로 연결할 때 Access는 무엇을합니까? 테이블을 잠그고 있습니까? 데이터를 누락 또는 삭제하도록하려면 어떻게해야합니까? 액세스가 원인이라면이를 해결하기 위해 어떤 조치를 취해야합니까?

+0

마이크로 소프트 지원을위한 일처럼 들립니다 .-) – lothar

답변

3

데이터가 데이터를 변경하거나 삭제하도록 허용해야합니까?

그렇지 않은 경우 읽기 전용 액세스가 허용되는 Access에서 사용할 사용자 ID를 설정하는 것이 좋습니다.

SQL Server 모범 사례는 사용자 계정이 비즈니스 요구 사항을 충족시키는 데 필요한 최소의 액세스 권한을 갖도록하는 것입니다. 모든 사용자에게 빈 암호가있는 계정을 부여하지 마십시오.

편집 : SQL Server Management Studio를 같은 액세스의

생각해, 대화 형 도구를 하나의 쿼리하고 계정이 당신이 할 수 있도록 권한이 제공하는 사실상 무제한 방식으로 데이터베이스를 변경하는 데 사용할 수있는 즉 그. 테이블을 끌어 올 수있는 대화 형 환경이므로 행을 삭제하는 것은 해당 행을 클릭하고 삭제 키를 누르는 것만 큼 간단합니다. 데이터 값을 변경하는 것은 행과 열을 클릭하고 새 값을 입력하는 것만 큼 간단합니다.

물론 뭔가를 삭제하는 것은 실수로 삭제 키를 누르는 것만 큼 간단합니다.

액세스 제한이없는 도구와 계정을 사용자에게 제공하면 의도, 사고 또는 다른 방식으로 데이터가 변경 될 수 있다는 점은 놀랍지 않습니다.

+0

감사합니다. 나는 ISV에있다.그것이 내가 Access에서 무엇을하고 있는지 전혀 알지 못하는 이유입니다. – Kinze

2

SQL Server 데이터는 일반적으로 ODBC/OLEDB 연결 인 연결 테이블을 사용하여 MSACCESS에서 액세스됩니다. 이 기술은 다소 고풍스럽고 완전히 버그가없는 것은 아니지만이 문제를 일으킬 수있는 기반 기술에 대해서는 생각할 수 없습니다.

일반 사용자는 SQL Server 데이터베이스에 대한 관리자 ID와 암호 (제한되지 않은 권한)가 포함 된 ODBC 데이터 원본 또는 연결 문자열을 사용하여이 테이블에 액세스합니까? 그럴 경우 누락 된 데이터가 주어진 것입니다. 열려있는 MSACCESS 연결 테이블에서 행을 삭제하는 것은 Excel에서 행을 삭제하는 것만 큼 쉽습니다.

MSACCESS/SQL 연결의 레코드 잠금은 일반적으로 사용자가 변경하지 않는 한 낙관적입니다. 예전에는 SQL Server 2000에서 두 사람이 같은 레코드를 동시에 편집하는 경우 마지막으로 저장 한 사람이 (자동으로) 이겼습니다. 현재 마지막으로 저장 한 사람은 변경 사항을 기록하는 동안 다른 사람이 레코드를 편집했다고 말하면서 두 가지 옵션을 제공합니다. 변경 사항을 저장하지 않거나 다른 사람의 변경 사항을 덮어 씁니다.

어쨌든 테이블에 읽기 전용 액세스를 제공하면 많은 가슴 아픈 일이 줄어들 것입니다.

관련 문제