사용자가 내 시스템에서 할 수 있거나 할 수없는 것을 제한하기 위해 역할 기반 액세스 제어 모델을 따르려고합니다.
지금까지 다음 엔티티가 있습니다.
users- 시스템을 사용할 사람들. 여기에 사용자 이름과 비밀번호가 있습니다. 역할 -사용자가 가질 수있는 역할 모음. 관리자, 관리자 등의 리소스 -사용자가 조작 할 수있는 것. 계약, 사용자, 계약 초안 등과 같은 작업 -사용자가 리소스를 사용하여 수행 할 수있는 작업. 작성, 읽기, 업데이트 또는 삭제와 같이
자, 내 의심은 여기에 내가 다음과 같은 관계가있는 다이어그램에서 떠 오릅니다.
작업 (0 .. *) 은 권한 ( I)이라는 테이블을 생성 하고 작업 및 리소스를 저장하는 리소스 (0 .. *)에 대해 실행됩니다 .
권한 테이블은 다음과 같습니다 (한 행) : ID : 1, 조작 : 작성, 자원 : 계약.
어떤 수단 허락 하는 생성 계약을 .
일부 리소스에는 모든 종류의 작업이 없을 수 있으므로이 방법으로 수행했습니다. 예를 들어, 계약 을 등록하기 위해 사용자는 파일 을 업로드 할 수 있지만이 오퍼레이션 은 제공자 를 등록 할 수 없습니다 .
따라서 관리자 가 역할에 대한 권한 을 부여 할 때 시스템에 등록 된 모든 단일 조작에 대한 자원 목록이 없습니다.
각 리소스 에는 자신 에게 실행될 수있는 자체 작업 모음이 있다고 생각합니다 .
이해할 수없는 것이 있는지 명확히 할 수 있습니다.
이것이 rbac를 구현하는 올바른 방법입니까?
편집하다
내 말은 오퍼레이션 과 자원 이 있는 권한 테이블을 가짐으로써 자원 을 오퍼레이션 과 연관 시키려고하기 때문에 두 개의 추가 테이블이 있다는 것 입니다. 또한 단지 할 수 있었던 자원 이 권한 권한 테이블이 권한을 저장하는 것입니다.
그러나 어떤 일이 일어 났는지는 관리자가 할당 할 때 일부 리소스에는 존재하지 않는 일부 권한이 나타 났을 것입니다.
따라서 하나의 열 작업과 다른 리소스가있는이 테이블 권한이 올바른지 데이터베이스 디자인 관점에서 알고 싶습니다. 이 상태로 유지되면 문제가 발생합니까?