누구나 MongoDB에서 모델링 액세스 제어 예제가 있습니까? 내가 생각하고있는 상황은 다음과 같습니다.MongoDB에서 액세스 제어 모델링
각자 고유 한 문서 (예 : 자동차, 사람, 나무 등)가 있습니다.
사용자는 명시 적 승인을 통해 자원에 액세스하거나 다른 소유자 (예 : 역할) 또는 다른 암시적인 방법으로 존재하는 자원의 소유자가 됨으로써 암시 적으로 자원에 액세스 할 수 있습니다.
건너 뛰기 및 제한 옵션이 적용될 수있는 collection.find() 메서드에서 이러한 모든 명시 적 및 암시 적 경로를 확인하고 사용자가 액세스 할 수있는 리소스의 결과를 생성하는 방법이 있습니까?
MySQL에서는 리소스 ID, 사용자 ID 부여, 허가 된 사용자 ID 및 작업 (읽기, 쓰기 등)을 포함한 권한 테이블을 사용하여이를 모델링했습니다. 그런 다음 하나의 쿼리에서 적어도 하나의 하위 쿼리가 참인 모든 리소스를 선택하면 하위 쿼리는 액세스 할 수있는 모든 다른 경로를 확인합니다. 보조금에 대해 하나 개의 검사, 소유권에 대한 하나 개의 검사 등
난 그냥 MongoDB의에서이 일을 주위에 내 머리를 정리 할 수없는, 나는 그것도 가능하다면 확실하지 않다 ...
감사
나는 이것이 사실일지도 모른다라고 생각했다. 비즈니스 로직에서 그렇게하는 것은 고통스럽고 느리고 비효율적입니다. 이러한 리소스를 검색하거나 나열하는 경우 해당 리소스를 모두 또는 하나씩 읽은 다음 비즈니스 논리를 적용하고 실패 할 경우 비즈니스 논리를 적용하고 페이지 매김 제한이있을 때까지 계속 읽어야합니다. 질의시 데이터 계층에서 처리하는 것이 훨씬 더 복잡하지만 가치가 있습니다. 전체 또는 일부를 업데이트하려는 경우 복제가 트랜잭션없이 위험 해 보입니다. MongoDB가 우리의 유스 케이스에 적합하지 않은 것 같습니다. – Tyler
내 대답이 업데이트되었습니다. 그냥 제안, mongodb 구글 사용자 그룹에이 질문을 할 수 있습니다. 나는 대부분의 애플 리케이션에서 더 좋지 않다면 문서 데이터베이스가 잘 작동 할 수 있다고 생각한다. 그리고 앱이 규칙의 예외는 아닐 수도 있습니다. –
답변을 수락 - 키가 나를 데려가는 것은 1 개 이상의 쿼리를 수행하는 것이 좋습니다. :) – Tyler