흥미로운 디자인 문제가 있습니다. 필자는 프로젝트의 보안 측면을 설계하여 비용이 다른 여러 버전의 프로그램을 보유 할 수있게하고 관리자 유형의 사용자가 프로그램 일부에 대한 액세스를 다른 사용자에게 허용하거나 거부하도록합니다. 웹 기반으로 서버에 호스팅됩니다.일치하는 SQL 테이블을 구성하거나 결과를 반환하지 마십시오.
각 '자원'또는 화면에 대해 간단한 허용 또는 거부 옵션을 사용하고 있습니다.
우리는 많은 자원을 가지게 될 것이며 사용자는 사용자를 제어 할 수있는 여러 그룹을 설정할 수 있습니다. 각 사용자는 단일 그룹에만 속할 수 있습니다.
나는이 점을 염두에 두 가지 접근법을 가지고 있으며, 성능면에서 SQL 서버에 더 좋을지 궁금하다.
옵션 A 액세스 테이블에 항목이있는 것은 액세스가 허용됨을 의미합니다. 데이터베이스에 정보를 저장하는 열이 필요하지 않습니다. 결과가 리턴되지 않으면 액세스가 거부됩니다.
나는 이것이 더 작은 테이블을 의미 할 것이라고 생각하지만 쿼리가 전체 테이블을 검색하여 일치하는 것이 없다고 판단 할 것인가?
옵션 B 비트 열은 허용/거부를 제어하는 데이터베이스에 포함됩니다. 이것은 항상 발견 될 결과가 있다는 것을 의미하며 큰 테이블을 만듭니다.
생각하십니까?
사용자 테이블은 액세스 제어 테이블과 별개이므로 액세스를 추가하거나 제거해도 사용자가 존재하지 않는다. 또한 액세스를 거부하는 결과가 없으면 실수로 액세스 할 수 없어야합니다. – Tilendor