Мои данные в SQL Server 2008 R2 хранятся в базе данных, скажем, CompanyData. У меня есть несколько таблиц с историей транзакций с большим количеством деталей по каждой транзакции.
Для определенных пользователей, создающих отчеты, я хочу, чтобы они имели возможности создания отчетов, но скрывали многие детали.
Итак, я создал новую базу данных DBReport и создал представление, которое выбирает только определенные столбцы из таблиц. Например, ВЫБЕРИТЕ field1, field2, field3 из [CompanyData]. [Dbo]. [TableA] ...
Я создал нового пользователя и новый логин (признаюсь, я не понимаю разницу между ними, так как я всегда создаю их вместе) под названием ReportingUser ТОЛЬКО с ролью db_datareader в обоих DBReport.
Проблема в том, что когда я запускаю отчет от имени этого пользователя с ограниченными правами, он возвращается с ошибкой о том, что при текущей безопасности этого не происходит.
Таким образом, мой вопрос сводится к тому, как мне указать в представлении вход в CompanyData, используя действительного пользователя в CompanyData. Я знаю, что могу также создать ReportingUser в CompanyData, но это именно то, чего я хочу избежать.
Надеюсь, я здесь не так запутан ...
Спасибо!