저는 회사 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입니다)
두 회사의 테이블 모두에서 유니온으로 선택하는보기에서 선택합니다. – jrummell
유니언 뷰를 두 개의 개별 뷰로 분리하면 데이터베이스 역할을 사용하여 해당 회사의 뷰에서만 select를 부여 할 수 있습니다. 네가 그걸 암시하는거야? – jrummell
예, 적절한 데이터 만 가져 오는 투명한 방법을 만들어야합니다. – keithwarren7