C#/.NET WinForms/Desktop 응용 프로그램에 대한 보안을 추가해야합니다. Oracle DB 백엔드를 사용하고 있습니다.데스크톱 앱의 '사용자'/ '역할'테이블에서 대리 키를 사용 하시겠습니까? 목적은 무엇입니까?
테이블은 사용자 (ID, 이름), 역할 (ID, 역할), UserRole (UserID, RoleID)과 같이 간단합니다.
사용자 계정을 채우는 데 Windows 계정 이름을 사용하고 있습니다. 역할 테이블은 이제는 단지 'Admin', '수퍼 유저', 'BasicUser'...
두 명의 사람들이 동일한 Windows 계정 이름을 가질 수 없기 때문에 ...이 이름을 제어하지 않더라도 관리 (netops 않습니다, 그래서 내가 왜 그것을 관리하지 않아도 windows 계정을 사용하려면;)). 롤 테이블의 경우, 나는 속임수 값을 결코 갖지 말아야한다. 나는 입력을 제어한다. 단 3 (전술적 인 앱이 1 년 내에 사라짐)이 될 것이다. UserRole은 사용자와 역할의 다 대다 관계를 나타 내기 위해 조인 테이블이므로 사기 키가 정당화되지 않습니다.
간단한 질문 - 왜 사용자 및 역할 테이블에서 'ID'(int)를 사용해야합니까? 여기에 어떤 이점이나 이점이 있습니까? 이것들 중 하나는 '나는 항상 이런 식으로 해왔다'라는 것입니까? 아니면 잠시 후에이 일을하지 않고 그 이유를 잊어 버린 적이 있습니까?
"대리 키가 있지만 행을 고유하게 식별하는 다른 열의 조합이 없으면 엔티티 정의가 올바른지 다시 생각해보십시오." - 아 아.당신이 이제까지 1000x 쉬워 야하는 경우에 명백한 가치를 새롭게하는 것을 제외하고 - 이것은 나가 찾고 있던 문장이었다. 이런, 내가 잊을 수있는 기본적인 것들이 얼마나 많은지 나이가 들면서 궁금해. 내가 배운 새로운 재료의 비율은 (켈리 번디 교장) – dferraro