2013-05-12 2 views
1

먼저 나를 바닥에 그릴 때까지, 나는이 주제를 읽고 연구하는데 상당한 시간을 할애했다. 난 내가 흥미로운 발견 한 것은 그 자체와 같은액세스 제어 목록 구현 vs 데이터베이스 역할 및 사용자 사용

  1. How can I implement an Access Control List in my Web MVC application?
  2. Database schema for ACL

그것이 반드시 좋은 ACL 구현을 생성하고 난 모두의 방법을 따라하는 방법을 나에게 설명이었다 유래에 대한 몇 가지를 읽고 이들의. 또한 Korth는 쿼리 최적화 및 성능 영향을 이해하기 위해 데이터베이스 개념을 언급했습니다.

하지만 내 진짜 질문은이 벙어리 방식으로 이어집니다. 왜 데이터베이스에서 역할을 만들고 테이블에 권한을 부여한 다음 각각의 역할을 사용하여 데이터베이스에 액세스하는 것이 더 좋지 않은 이유는 무엇입니까? SQL Server를 사용하고 있기 때문에 연결 문자열에서 사용자 이름과 암호를 지정해야합니다. 나는 단지 시간을 낭비하고 ACL 구현을 테스트하는 것보다 (학습이 재미 있다는 데 동의했다 : D) 그러한 접근법의 장단점을 알고 싶다. 그래서 조언을 부탁드립니다.

답변

2

좋습니다, "데이터베이스에서 역할을 만들고 테이블에 권한을 부여한 다음 각각의 역할을 사용하여 데이터베이스에 액세스하는 것이 더 나은 이유는 무엇입니까?" :)

차이점은 프런트 엔드, 사이트 관리 및 데이터베이스 관리 사이에 있습니다.

포럼을 고려하십시오. 역할이나 제목 목록이있을 수 있으며, 각 목록에는 수행 할 수있는 것과 수행 할 수없는 것에 대한 권한 집합이 다릅니다. 여기에는 읽기, 게시, 답장, 새 스레드 생성 및 주제 작성이 포함됩니다.

포럼 사용자는 이러한 역할 만 볼 수 있지만 사이트 관리자는 이러한 역할에 대한 권한을 볼 수 있습니다. 데이터베이스 관리자 만이이 역할이 데이터베이스 계정과 어떻게 관련되는지를 볼 수 있습니다.

일부 계정에는 한 인스턴스에는 삽입 권한이 있지만 다른 인스턴스에는 같은 인스턴스가 없을 수 있습니다. 사용자 계정을 ACL 사용 권한이 설정된 역할과 연결하면 역할이 SQL 계정과 연결되어 백그라운드에서 적절한 액세스를 제공 할 수 있습니다.

질문에 대한 답변이 되었기를 바랍니다. :)

+0

고마워요. 그게 도움이 : D 조 – WrathOfZombies