나는 비교적 복잡한 액세스 제어 상황 (많은 경험이없는, 완전히 잘못 될 수 있음)이 있다고 생각합니다. 이 시스템은 개인/사내 데스크톱 전용 응용 프로그램으로 차이가있을 경우에만 사용합니다.컴플렉스 (?) 액세스 제어
내가 인사에 대한 트랙 인증서을 일하고 시스템 (테이블 굵은 사용). 특정 사용자은이 시스템에 액세스 할 수 있으므로 다소 제어가 이루어 지지만 추가 제어가 필요합니다. 예를 들면; 모두 사용자은 인력에 액세스 할 수 있어야합니다. 이는 실제로 HR에만 국한되어야합니다. 또한 특정 사용자은 인사에만 액세스 할 수 있지만 특정 인증서에만 액세스 할 수 있습니다.
현재 생각은 인증서 권한/액세스 레벨을 가진 int이며 & 인사에 필드를 추가한다. this 설정과 유사합니다. 사용자 테이블은 비교가 가능하도록 "AccessLevel"필드도 갖습니다.
현재 액세스 수준에 대한 확신이 없으며 현재 다음 사항을 고려하고 있습니다. 내가 올바른 방향 여부에 향하고있는 경우
[Flags]
public enum AccessLevel
{
None,
ReadOnly,
Normal, // Can view all Certificates and Personnel that aren't set to Management
Management, // For "sensitive" Personnel and/or Certificates
HR, // Full access
Admin // Permission control/editing
}
나는 특정 하지만 전에 이러한 복잡성에 대한 액세스 제어를 아니에요하지가 있습니까?
계층 구조가 역할을 담당합니다. 직원이있는 경우 관리자가 직접 보고서의 인증서를 볼 수있게 하시겠습니까? – HABO
그건 기술적으로 정확합니다. 그것은 계층 구조의 그 수준까지 정말로 비등하지 않습니다. HR은 주로 모든 사람의 인증서 관리를 담당합니다.즉, 인사이트 로지스틱스는 고객과 연락을 취하는 사람이기 때문에 특정 인증서에 대한 액세스가 필요합니다 (HR이 시스템을 사용하여 추적하고자하는 CV- 말하기 권한이 필요 없음). 즉 사람은이 증명서에 의해 입증 된 요구 사항을 충족시킵니다. – Trent
간단한 시스템의 경우 일반적으로'Privileges' ('PrivilegeId','Name','ShortName' 응용 프로그램 코드에서 사용 된'Description') 테이블과'UserPrivileges' 테이블을 사용하여 액세스 권한과 테이블을 부여했습니다. 권한을 부여/취소 할 수있는 사용자를 제어합니다. 'UserAdministersPrivilege'. 따라서 비트 마스크가 제공하는 비트 피하기와 비트 부족 가능성을 피할 수 있습니다. 필자는 암시 적으로 여러 수준의 계층 구조를 가진 여러 시스템을 수행했습니다 (사용자는 기본적으로 해당 지사/부서/회사의 문서를 항상 볼 수 있습니다). 다양한 수준의 권한에 대한 명시 적 액세스. – HABO