2013-06-26 2 views
0

SQL Server 2012를 사용하여 데이터를 유지 관리하는 Windows 응용 프로그램 프로젝트가 있습니다.모든 사용자에 대해 SQL Server 로그인 만들기

내 응용 프로그램 보안을 위해 시스템의 모든 사용자에 대해 SQL Server 로그인을 작성하기로 결정했습니다.

이것은 좋은 아이디어입니까?

+6

장점 : 매우 세분화 된 사용 권한. 단점 : 관리하기가 매우 어렵고 관리하기가 어렵습니다. 대안 : 데이터베이스에 대해 직접 인증하려는 경우 Windows NT 그룹을 작성하여 사람을 추가하십시오. 이상적으로, 각 그룹은 귀하의 신청서에서 역할을 대표하고 적절한 권리를 부여 받아야합니다. – dash

+1

나에게 유지 관리의 악몽처럼 들린다. 통합 보안을 사용할 수 없습니까? – user1429080

+0

통합 보안 (기존 Windows 자격 증명)을 사용하지 않으려면 하나 이상의 Windows ** 그룹 ** (사용자 추가 가능)을 만들고 해당 그룹에 대한 로그인을 만드는 것이 좋습니다. (a) 일반 사용자, (b) 더 많은 권한을 가진 사용자, (c) 관리자 또는 모든 그룹이 의미를 가질 수 있지만, 사용자 당 하나가 아닌 2-3, 5 ** ** 그룹 로그인 **을 관리하면됩니다. –

답변

0

데이터 액세스 수준을 각 사용자에 매핑하는 액세스 매트릭스 테이블을 만들 수 있습니다. 그런 다음 로그인 한 사용자의 액세스 수준에 따라 애플리케이션에로드 된 데이터를 표시하거나 숨길 수 있습니다. @dash가 말했듯이 이것은 유지하기가 더 어려울 것이지만 개별 로그인을 만드는 것보다 쉬운 옵션 일 수 있습니다. 둘째, DBA가 SQL Server 로그인을 편집하도록하는 대신 삽입/업데이트/삭제 스크립트를 작성하여 매트릭스를 편집하는 것이 더 쉽다고 생각합니다.

1

Windows Authentication을 사용하지 않는 것이 가장 좋은 방법입니다. 사용자를 Roles에 배치하고 해당 사용자 그룹에 대한 권한을 지정할 수도 있습니다.

각 사용자마다 다른 권한이 필요하며 각 사용자에게 어떤 데이터베이스 엔터티 (테이블, 뷰, 저장 프로 시저, 함수 등)에 대한 사용 권한이 있는지 정확하게 알고 있어야하는 경우 새 사용자를 만드는 것이 잘 했어. 이렇게하면 각 계정을 미세 조정하고, 계정을 활성화/비활성화하고, 권한을 쉽게 부여/취소 할 수 있습니다.

@dash는 유지 관리가 더 어려울 것이라고 말하지만, 보안 수준을 세분화하면 많은 수의 기반을 유지하는 것이 중요하다고 생각합니다.

관련 문제