Я работаю в компании A. Компания A имеет дочернюю компанию B. Обе компании A и B используют одну и ту же базу данных ERP. Я создал отчет SSRS 2005, который может использоваться обеими компаниями. Он имеет параметр CompanyID, который определяет, следует ли отображать данные для компании A или компании B.SSRS 2005 Безопасность на основе параметров
Для большинства отчетов это будет нормально, но для информации, чувствительной к компании (например, платежной ведомости), это будет проблемой, поскольку кто-либо в компании A может изменить параметр CompanyID на идентификатор компании B и наоборот.
Моя первоначальная идея - создать linked repor t для каждой компании в своих соответствующих папках A и B, где безопасность в папке A разрешает только пользователям A и папке B, разрешающим пользователям B. Затем я бы добавил параметр CompanyID по умолчанию для каждого связанного отчета и скрыть параметры от пользователя. Все идет нормально. Проблема заключается в том, что вы все равно можете изменить значения параметров, используя строку запроса URL. Например, пользователь в компании А может изменить отчет URL из:
http://server/ReportServer/ReportViewer.aspx?/Payroll/A & RS: Command = Рендер
к:
http://server/ReportServer/ReportViewer.aspx?/Payroll/A & RS: Command = Рендер & CompanyID = B
Теперь они полностью обошли скрытые дефа ult.
Что такое хороший подход для решения этой проблемы? Я хотел бы поделиться сообщениями между обеими компаниями, если это возможно.
Update: Мы также компания конкретной ASP.NET интранет, которые уже ограничивают доступ на основе компании через домен AD. Я полагаю, что я мог бы использовать элемент управления ReportViewer на странице интрасети, чтобы применить соответствующие параметры во время выполнения. Возможно, я мог бы включить эту логику в общую страницу отчета, которая могла бы использоваться для любого отчета, не так ли? (Пожалуйста, извините мое невежество, я - общая SSRS n00b)
Это выбор из представления, которое выбирает из обеих таблиц компании с объединением всех. – jrummell
Если мы разделим объединенный вид на два отдельных представления, мы могли бы, вероятно, использовать роли в базе данных, чтобы предоставить выбор только по виду соответствующей компании. Это то, о чем вы намекаете? – jrummell
Да, это должно создать прозрачное средство получения только соответствующих данных. – keithwarren7