2009-09-15 7 views
1

Active Directory 사용자를 사용하여 액세스 권한을 설정할 수 있습니까?
편집 : 전반적인 목적은 일부 사용자가 특정 테이블을보고 다른 사용자에게이 사용 권한을 거부하도록 허용하는 것입니다. 그것은 활성 디렉토리 사용자를 사용하여 수행 할 수 있는지 궁금하네요.Active Directory 사용자의 MS 액세스 권한

+1

전체적인 목표는 무엇입니까? 어떤 종류의 사용자 및 어떤 종류의 시스템을 만들고 있습니까? –

+0

Access 2007에 대한 질문이 같음 : https://stackoverflow.com/q/5833059/321973 –

답변

5

액세스 권한의 의미에 따라 다릅니다. 액세스 사용자 수준 보안은 어떤 식 으로든 Active Directory와 상호 작용하지 않습니다. ACC: Microsoft Access Security FAQ Available in Download Center이 FAQ를 여러 번 다시 읽는 것이 좋습니다. 나는 결코 그것을 결코 이해하지 못함을 인정해야한다. 또한 참조하십시오 ACC2000: Overview of How to Secure a Microsoft Access Database

이제 로그인 한 사용자 및 그룹 등에 대한 Active Directory 데이터를 읽을 수 있습니다. 그런 다음 로그인 ID와 함께 다양한 AD 그룹을 매핑하는 일부 로컬 테이블을 Access의 다양한 개체 및 메뉴 항목에 연결하여 이러한 방식으로 액세스를 제어 할 수 있습니다. 그러나 로컬 테이블은 잘 아는 사용자, 등등에 의해 망칠 수 있습니다.

가장 유용한 URL은 다음 뉴스 그룹 게시입니다. need help on get list of W2K ad Domain (fqdn) by using VB Options이 주제에 대해 작업 할 때 노트 페이지를 유지했으나 유용 할 수도 있고 그렇지 않을 수도 있습니다. 원하는 경우 게시 할 수 있습니다.

1

Access에서 마지막 날 게시 한 몇 가지 질문에 따르면 Access/mdb 파일에서 테이블 (예 : 양식 제외)을 SQLExpress 서버로 전환하는 것을 고려해야합니다.이 모든 보안 문제 쉽게 관리 할 수 ​​있습니다. 데이터베이스를 업 사이즈 화하고 클라이언트 응용 프로그램 (또는 XML 파일, 로컬 테이블 또는 문자열을 저장할 수있는 다른 모든 것)에 공개 변수로 연결 문자열을 추가합니다. 액세스 파일의 추가 속성으로도 currentDb를 통해 트릭을 수행 할 수 있습니다 .createProperty 메소드), 실제 클라이언트 - 서버 구성으로 이동하십시오.

+0

그렇지 않아도됩니다. 예를 들어, 부서별 사용자가 구매 양식을 볼 수있게하려면 (물론 구매 테이블에 액세스하십시오.) 어떻게 효율적으로 그렇게 할 수 있습니까? 사용자가 A/R 테이블에 액세스하는 미수금 서식을 열면 Access가 코드에서 처리하는 오류 코드를 반환합니까? –

+0

@ 토니, 일단 사용자 그룹이 있으면 서버의 테이블 (또는 더 나은 뷰)을이 그룹에 연결할 수 있습니다. 그리고 예,보기 액세스 할 수 없을 때 Access 쉽게 오류 메시지를 반환 할 수 있습니다. 양식을 나열한 테이블, 사용자를 나열하는 또 다른 테이블, 누가 액세스 할 수 있는지를 나타내는 많은 링크 테이블을 사용하여보다 정교한 솔루션을 개발할 수 있습니다. 하지만 결국 보안 수준이 높아 지므로 서버 수준에서 사용 권한을 설정하게됩니다. –

+0

높은 보안이 필요하지 않습니다. 단순히 데이터베이스를 보호하는 간단한 방법이 있는지 확인하는 것입니다. 그렇지 않은 경우 - 심지어 중요하지도 않습니다. 그것은 단순하고 일시적이며 빠르며 내부 회사 앱입니다. 그것이 다른 것이라면 확실히 sqlExpress를 사용할 것입니다. 그리고 나는 '그'가 아니야. – agnieszka

3

Tony와 Philippe이 게시 한 것에 동의합니다. 단지 비트를 추가하고 싶습니다.

보안이 정말로 필요한 경우 Jet/ACE 백 엔드는 "보안"이라는 단어의 중요한 정의에 대해 작업하지 않습니다. Jet ULS는 균열이 심하고 쉽게 프로그래밍 할 수있는 기본적인 프로그래밍 솜씨가있는 사람이라면 누구나 쉽게 사용할 수 있습니다. 따라서, 당신이 찾고있는 데이터 보안이라면 필립은 당신이 다른 데이터베이스 엔진을 선택해야한다고 옳다.

  1. 가의 각 사용자의 데이터베이스에있는 테이블의 커플 권한을 유지 : 당신은 프런트 엔드 응용 프로그램에 액세스를 제어하기 위해 찾고 있다면

    는, 당신은 세 가지 선택이있다 사물.

  2. 은 Jet 사용자 수준 보안을 구현합니다.

  3. 은 Jet ULS 대신 AD 사용자/그룹을 사용합니다.

이러한 선택 사항 중 어느 것도 원활하지 않습니다.

이 모든 것은 프런트 엔드가 문제를 처리하도록 프로그래밍되어야한다는 것을 의미합니다.

보안상의 이유로 액세스를 제한하는 경우 Windows 보안 (예 : SQL Server)과 통합되는 데이터베이스 엔진을 사용하는 것이 좋습니다.

프로그램 흐름을 간소화하고 런타임에 특정 사용자의 요구에 맞게 앱을 조정하려면 데이터 저장소에 보안이 꼭 필요한 것은 아닙니다. 누가 데이터베이스를 사용하고 어떤 그룹에 속해 있는지, 그리고 그들이 액세스해야하는 앱의 부분 (그리고 2 차적으로 어떤 수준의 액세스, 읽기/쓰기, 읽기 전용 등)을 추적하십시오.

저는 지난 몇 년간이 마지막 목적을 위해 Jet ULS를 사용해 왔지만 사용자 관리가 쉽지 않기 때문에 완전히 만족하지 못했습니다. AD와의 통합은 좋은 선택이지만 앱을 관리하는 사람은 AD 사용자를 관리 할 수있는 권한이 있어야합니다. 이것은 친숙한 이웃 sysadmin이 동의 할만한 것이 아닐 수도 있습니다.

한편 백 엔드 보안과 프런트 엔드 액세스 제어가 모두 필요하면 AD를 통한 원 스톱 쇼핑을 위해 Windows 보안을 사용하여 SQL Server 백 엔드를 이길 수 없습니다.