나는 쉬운 대답이 있어야하는 것처럼 느껴지는 질문이 있지만, 한 가지 이유 또는 다른 이유로 나는 그 문제를 완전히 추론 할 수 없었다.SQL Server 사용자 및 역할을 인트라넷 웹 응용 프로그램의 권한 데이터베이스로 사용 하시겠습니까?
저는 ASP.NET MVC3 인트라넷 응용 프로그램 개발에 착수했습니다. 현재 인증 & 인증을 설계 중입니다. 우리는 우리 환경에서 기본 인증을 사용해야하며 Active Directory를 사용하므로 인증 부분은 일반적으로 처리됩니다. 안타깝게도 액티브 디렉토리에있는 우리의 역할/사용자 계층 구조는 응용 프로그램에서 필요한 역할을 반영하지 않습니다. 그래서 내 자신을 정의해야 할 것입니다.
저는 SQL Server를 사용하기 때문에 원래 모든 DML에 대해 저장 프로 시저를 사용하고 SQL Server에서 역할을 만들고 역할에 사용자를 추가 한 다음 해당 역할을 통해 저장 프로 시저에 대한 액세스를 제어 할 생각이었습니다. 또한 SQL Server 데이터베이스 수준 사용자 &의 역할을 쿼리하여 응용 프로그램 자체의 권한 부여 정보 원본으로 사용할 수 있다고 생각했습니다. 원래는 훌륭한 아이디어처럼 보였지만 인기있는 것 같지 않았습니다 (하나는 검색어가 길고 지저분한 것 같습니다). 또는 웹 응용 프로그램에서 서버에 대한 모든 쿼리에 대해 사용자를 가장 한 다음 내 자신의 스키마로 사용자/역할 데이터베이스를 구현하고 응용 프로그램 측면에서만 권한을 부여하는 것이 더 낫습니다.
원래 응용 프로그램과 데이터베이스 측면 모두에서 권한을 부여하는 것이 보안에 좋은 것으로 보였고 SQL Server 사용자/역할 개체를 사용하면 사용자와 역할 데이터를 두 위치에 저장할 필요가 없다는 것을 의미했습니다 .
나는 Best practice on users/roles on SQL Server for a web application에 잠재적으로 관련있는 토론을 보았지만 이것이 전반적으로 다른 질문이라고 생각합니다.
감사합니다.
예기치 않게 조용한 응답입니다. 다시 생각해 볼 때, 나는 다른 방법을 찾기로 결심했다. 나는 그것이 효과가있을 수 있다고 생각하지만 실제로 보안 위험이 더 많아 질 수 있으며 DB 보안 객체를 변경하기위한 내장 된 모든 프로 시저를 사용하는 것이 고통스러워 보입니다. (사실 나는 모든 너무 깊은). DB와 애플리케이션 모두에서 적절한 보안을 제공하기는하지만 상황에 따라 주로 애플리케이션 보안에 중점을 두는 것이 좋습니다. 어쨌든 지상에서 내려야합니다. –