У меня есть веб-приложение ASP.NET, которое использует вызовы веб-служб SSRS ReportService2005.asmx и ReportExecution2005.asmx.
Используемая технология - ASP.NET 3.5, Visual Studio 2008 и SQL Server 2008 R2 (я использую ReportService2005, так как использую библиотеку кода, которая использует это, а не ReportService2010).
Пользователь входит в систему, используя проверку подлинности с помощью форм. Затем пользователь переходит на страницу отчета. Пользователь может принадлежать к любому количеству групп отчетов (каждая группа может содержать любое количество отчетов). Группы отчетов, связанные с ними отчеты и пользователи, назначенные группам отчетов, управляются страницей в веб-приложении и хранятся в серии таблиц в базе данных веб-приложения (НЕ в базе данных SSRS).
В настоящее время доступ к ReportService2005.asmx и ReportExecution2005.asmx достигается с использованием учетных данных сервера по умолчанию. Это безопасно? Все отчеты на сервере будут доступны через эти учетные данные по умолчанию. Единственное ограничение на отчеты, которые может видеть пользователь, будет наложено на интерфейсное приложение, которое предположительно может быть взломано с помощью, например, Javascript?
Мне нужен метод, в котором я могу избавиться от ряда таблиц отчетов / пользователей / групп в базе данных веб-приложения и использовать схему SSRS. Например:
Пользователь A (сотрудник компании A) принадлежит к группе финансовых отчетов и группе маркетинговых отчетов. Группа «Финансы» содержит финансовый отчет 1 и Финансовый отчет 2. Группа «Маркетинг» содержит маркетинговый отчет 1.
Вышеупомянутые отчеты будут помещены в папки «Финансы» и «Маркетинг» на сервере отчетов (с помощью диспетчера отчетов).
Затем я мог бы создать пользователя Windows (назовем его MarketingFinance) на сервере отчетов и дать этому пользователю соответствующие разрешения для папок Marketing и Finance. В этом случае пользователю A потребуется какой-то флаг в своем профиле .net membershipprovider для связи с пользователем MarketingFinance.
Проблема с этим заключается в том, что я предполагаю, что новый пользователь Windows должен создаваться на сервере отчетов каждый раз, когда создается / изменяется настраиваемая группа отчетов. Используя приведенный выше пример, скажем, что группа отчетов о продажах создана и к ней добавлен пользователь B. Теперь на сервере отчетов должен быть пользователь Windows (Продажи) с соответствующими разрешениями, установленными для доступа к папке Продажи. Также нескольким клиентам веб-приложения потребуются собственные версии групп продаж / маркетинга и т. Д., Что потенциально увеличивает количество пользователей Windows до многих тысяч!
Я новичок в SSRS, поэтому могу неправильно смотреть на это - могу ли я использовать роли, чтобы упростить эту проблему?
Кроме того, отчеты, вероятно, будут в основном одинаковыми для разных компаний (под компанией я имею в виду клиента приложения), но каждая компания может захотеть, чтобы отчеты были настроены в разных папках. то есть в папке Финансы компании A есть отчет A, отчет B и отчет C, но в папке финансов компании B есть только отчет A. Предположительно, ссылки на отчеты избавят меня от необходимости иметь 2 физических копии отчета A в обеих папках?