그룹/사용자 기반 보안 시스템을 설정하고 있습니다. ACL은 ITEM_ID와 하나 그룹 또는 사이의 매핑그룹/사용자 기반 보안. 테이블/SQL 질문
- 사용자
- 그룹
- group_user_mappings
- ACL
다음과 같이
나는 4 개 테이블이 사용자.
나는 ACL 테이블을했던 방법, 나는 노트의 3 열이 (자동 ID로 실제로 4 일을하지만 무관)
- COL 1 ITEM_ID (액세스 항목)
- COL 3 (액세스 할 수있는 사용자) USER_ID (액세스 할 수있는 기)
- COL 3 GROUP_ID 예 그래서
항목 1, 피터,
항목 2, 그룹 1항목 3, 제인,
때문에 어느 ACL이 사용자 또는 그룹에 대한 액세스를 제공한다. ACL 테이블의 한 행에는 항목 -> 사용자 맵핑 또는 항목 그룹이 있습니다. 나는에 사용자가 액세스 할 수있는 모든 개체를 반환하는 쿼리를 원한다면
, 나는 내가 좋아하는 가입이 별도의 쿼리 ..
항목을 필요로하기 때문에 나는 노동 조합이있는 SQL 쿼리를 가질 필요가 있다고 생각 -> acl -> 그룹 -> 사용자 AND 항목 -> acl -> 사용자
괜찮을 것 같습니다. 이것이 정상적으로 수행 된 방법입니까? 이 일을 올바르게하고 있습니까?
조금 지저분 해 보입니다. 나는 각 개인에 대해 단일 사용자 그룹을 만들어 주위를 돌아 다닐 수 있다고 생각했기 때문에 SQL에서 그룹을 다룰뿐입니다. 그러나 이것은 조금 혼란 스럽습니다.
비슷한 설정이 있지만 사용자에게 역할, 그룹 및 사용자를 할당 한 다음 그룹에 할당 할 수 없습니다. 그룹에 단 한 명의 사용자가있는 것으로 밝혀지면 그렇습니다. 그러나 모든 것을 관리하기가 더 쉽습니다. 그리고 현실적으로 몇 명의 그룹 만 하나의 사용자로 가질 수 있습니까? 또한 사용자가 직접 권한을 할당받은 사용자가 그룹을 통해 직접 액세스하지 못하게하는 것도 설계 상으로는 없습니다. 그러면 역할이 쿼리에서 두 번 발생합니다. 또한 권한을 취소하려는 경우 그룹 액세스뿐만 아니라 직접 액세스를 확인하는 것을 기억해야합니다. – Tony
고마워, 나는 그것이 모두 너무 어려워지면 나는이 길로 갈 것이라고 느꼈다. – Brett