2014-11-06 3 views
1

Accumulo에서 Authorizations 및/또는 서버 측 반복기가 반환하는 레코드를 적용 할 수 있습니다.mongodb에서 수정 및/또는 수정 업데이트 적용

MongoDb에서 이러한 유형의 보안을 시행하는 메커니즘은 무엇입니까? 집계 파이프 라인에 대해 $redact 명령이 있지만 사용자가 자신의 쿼리를 제한하는 것에 의존한다는 것을 알고 있습니다.

또한 누군가가 업데이트 권한이없는 문서에 대한 업데이트를 수행하지 않도록 어떻게 적용 할 수 있습니까?

답변

0

MongoDB 권한 부여는 2.6으로, 수집 수준이며 사용자가 볼 수있는 문서와 대조적으로 사용자가 수행 할 수있는 작업을 제어합니다. 예를 들어, 사용자가 컬렉션에서 find을 수행 할 수있는 권한을 가지고있는 경우 컬렉션의 모든 문서를 볼 수 있으며 특정 문서를 숨길 수는 없습니다.

사용자에게 업데이트 권한을 보류 (예 : read 역할 만 부여)함으로써 컬렉션에 대한 업데이트 권한을 적용 할 수 있습니다.

설명서의 security section에는 MongoDB의 보안 모델에 대한 개념적 개요가 있습니다.

+0

기본적으로 대답은 "아니오, 데이터 (컬렉션)에 대한 액세스를 제어 할 수있는 방법이 없습니다. 모든 것이 든 아니든간에 그 시점에서 볼 수없는 문서를 $ $ 인쇄하는 것은 영광입니다." – FuriousGeorge

+0

설명 된대로 역할 및 권한 기반 보안 모델을 사용하여 컬렉션에 대한 액세스를 제어하는 ​​절대적인 방법이 있습니다. 컬렉션에 대한 읽기 권한이 있고 데이터베이스에 직접 연결되어 있으면 컬렉션에있는 모든 문서의 모든 부분을 볼 수 있습니다. 그러나, 예를 들어 [$ redact 문서] (http://docs.mongodb.org/manual/reference/operator/aggregation/redact/)에서 미들웨어 및 $ redact를 사용하여 문서의 일부에 대한 액세스를 제어 할 수 있습니다. – wdberkeley

+0

당신이 말했듯이 - DB *에서 (Accumulo와 같이) * 할 수 없습니다. 사람들에게 강요해야하는 미들웨어 솔루션이 있어야합니다. 예 - 직원 기록 모음이 있습니다. 팀 리더가 부하 직원에 대한 연락처 정보를 볼 수있게하고 싶지만 직원에게 월급 정보를보고 싶지 않습니다. HR은 모든 것을 볼 수 있어야합니다. 둘 다 READ 액세스 권한을 가지지 만 팀 리드는 내가 프록시를 통과하지 않으면 급여 정보를 볼 수 있습니다. 이것은 일반적인 솔루션의 경우 실제로 확장되지 않습니다. – FuriousGeorge