최적의 사용자 역할 권한 데이터베이스 설계 프랙티스
역할에 부여된 권한에 따라 사용자가 특정 탭에 액세스할 수 있는 웹 앱 데이터베이스를 설계하고 싶습니다.
지금까지 2개의 테이블을 작성했습니다.USER_테이블과 USER_ROLES
사용자_탭LE에는 다음 필드가 있습니다.
- id(프라이머리 키)
- user_name
- 패스워드
- 이름
- 성_이름
- created_date
- role_id_fk(외부 키)
USER_ROLES에는 다음 필드가 있습니다.
id(프라이머리 키)
role_name(ADMIN, TAB1_USER, TAB2_USER 등)
created_date
여기서 role_name "ADMIN"을 가진 사용자는 모든 탭을 볼 수 있으며 다른 사용자는 특정 탭에만 액세스할 수 있습니다.
질문입니다. USER_ROLES 테이블에 외부 키가 있는 USER_PERMISS 테이블을 만들고 다음 필드를 입력해야 합니까?
- id(프라이머리 키)
- permission_type(ALL, TAB1, TAB2....)
아니면 코드레벨로 관리해야 하나요?두 접근법의 단점과 장점은 무엇입니까?
Krokodilko씨가 코멘트한 것처럼, 그것은 당신이 필요로 하는 유연성의 수준에 달려 있습니다.
클라이언트 중 하나에 대해 다음과 같이 역할 기반 권한을 구현했습니다.
- 사용자(사용자 ID(PK), 사용자 이름(고유), 비밀번호(솔레이트 및 해시!), 이름, 성, 전화 등)
- 역할(역할 ID(PK), 역할 이름(고유), 역할 설명)
- 권한(PK), 권한 이름(고유) - 탭/화면/작업이 여기에 표시됩니다.
- User To Role(사용자 ID, 역할 ID) - PK가 두 열 모두 결합되어 있습니다.
- 권한에 대한 역할(역할 ID, 권한 ID) - PK가 두 열 모두 결합되었습니다.
다만, 가능한 한 유연하게 하는 것이 요구되어, 아직 성장하고 있는 시스템입니다(6년, 계상).
많은 어플리케이션에서 제 경우와 같이 다수의 어플리케이션이 아닌 1대 다의 관계로서 역할을 할 수 있다고 생각합니다만, 저는 어떠한 어플리케이션에서도 권한을 하드 코딩하거나 권한을 롤하지 않습니다.
상세설명:역할 기반 보안 데이터베이스 설계(What do I know?)
언급URL : https://stackoverflow.com/questions/46016139/best-user-role-permissions-database-design-practice
'source' 카테고리의 다른 글
| 입력 유형 Number에서 +,-e를 차단하는 방법 (0) | 2023.02.16 |
|---|---|
| useState와 useEffect의 차이점은 무엇입니까? (0) | 2023.02.16 |
| 중력 형태 오류 (0) | 2023.02.16 |
| jQuery - Ajax 경유로 JSON을 PUT하는 방법 (0) | 2023.02.16 |
| AJAX를 사용하여 교차 도메인 끝점 로드 (0) | 2023.02.16 |