0

저는 회사 A에서 일하고 있습니다. 회사 A에는 자매 회사 B가 있습니다. 회사 A와 B는 모두 동일한 ERP 데이터베이스를 사용합니다. 두 회사에서 사용할 수있는 SSRS 2005 보고서을 만들었습니다. 회사 A 또는 회사 B에 대한 데이터를 표시할지 여부를 결정하는 CompanyID 매개 변수가 있습니다.SSRS 2005 매개 변수 기반 보안

대부분의 보고서에는 문제가 없지만 회사 민감한 정보 (예 : 급여)의 경우 이는 회사의 누군가 A는 CompanyID 매개 변수를 B 사의 ID로 변경할 수 있습니다.

이 문제를 해결하기위한 초기 아이디어는 폴더 A의 보안이 회사 A 사용자와 폴더 B 보안이 B 사용자 만 허용 한 각각의 폴더 A와 B에서 각 회사에 대해 linked repor t를 작성하는 것이 었습니다. 그런 다음 각 연결된 보고서에 기본 CompanyID 매개 변수를 추가하고 사용자로부터 매개 변수를 숨 깁니다. 여태까지는 그런대로 잘됐다. 이 문제는 URL 쿼리 문자열을 사용하여 매개 변수 값을 변경할 수 있다는 것입니다. & RS

http://server/ReportServer/ReportViewer.aspx?/Payroll/:

http://server/ReportServer/ReportViewer.aspx?/Payroll/ & RS : 명령 =

에 렌더링 예를 들어, A 사에서 사용자의 보고서 URL을 변경할 수있는 명령 = & 렌더링 회사 ID = B

이제 그들은 숨겨진 defa ult 매개 변수.

이 문제를 해결하기위한 좋은 접근 방법은 무엇입니까? 가능한 경우 두 회사간에 보고서를 공유하고 싶습니다.

업데이트 : 우리는 이미 AD 도메인을 통해 기업을 기준으로 액세스를 제한 기업 특정 ASP.NET 인트라넷 있습니다. 런타임에 적절한 매개 변수를 적용하기 위해 인트라넷 페이지의 ReportViewer 컨트롤을 사용할 수 있다고 가정합니다. 아마도이 논리를 모든 보고서에 사용할 수있는 일반 보고서 페이지에 통합 할 수 있습니까? (제 양해 해 주시기 바랍니다, 전 총 SSRS n00b입니다)

답변

1

여기 보안 장비는 무엇입니까? 견고하고 안전한 솔루션은 사용자 계정을 기반으로 데이터에 대한 액세스를 유도하는 것입니다. 보고서 데이터는 어떻게 수집됩니까? 데이터 세트에서 직접 선택합니까? 절차를 부르는거야? 보기에 대해 선택 하시겠습니까?

편집 : 각 회사 데이터를 통합하는 VIEW에 대해 선택하기 때문에 액세스 권한이있는 사용자 또는 역할에 대한보기 권한을 부여하면 데이터가 반환되는 시나리오를 만들 수 있습니다. 사용자가 자신의 권리를 기반으로합니다.

+0

두 회사의 테이블 모두에서 유니온으로 선택하는보기에서 선택합니다. – jrummell

+0

유니언 뷰를 두 개의 개별 뷰로 분리하면 데이터베이스 역할을 사용하여 해당 회사의 뷰에서만 select를 부여 할 수 있습니다. 네가 그걸 암시하는거야? – jrummell

+0

예, 적절한 데이터 만 가져 오는 투명한 방법을 만들어야합니다. – keithwarren7

0

연결된 보고서를 사용할 필요가 없으므로 Expression Based Connection Strings을 사용할 수 있지만 정보를 GET 요청에 노출되는 매개 변수로 전달하는 것을 의미합니다.

보고서를 표시/실행할 대상을 구별해야하는 번거 로움이 없습니다.