26.01.2011, 19:46 | #1 |
Участник
|
Отчет использующий user defined function
Народ, помогите разобраться!
Отчет использует table-valued функцию, которая была для него специально создана в базе CRM. Под админом crm отчет выполняется, под другими пользователями нет. В permissions этой функции добавил CRMreaderRole и группу PrivReportingGroup, членом которой является комп на котором установлен SSRS Connector. Это не помогает. Как правильно назначить этой функции параметры безопасности? |
|
26.01.2011, 20:23 | #2 |
Чайный пьяница
|
Для начала скажу, что то что вы делаете - неподдерживаемая кастомизация, но сам не ангел и такое не раз делал.
Для того чтобы функция заработала достаточно посмотреть разрешения на те функции, которые доступны простому смертному в отчётах. Прикладываю скриншоты.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
26.01.2011, 22:14 | #3 |
Участник
|
Спасибо! Завтра попробую, сообщу результат!
|
|
27.01.2011, 13:10 | #4 |
Участник
|
Вроде все сделано как показано на картинках.
Но под одним пользователем работает а под другим нет. Пользователи находятся в одном подразделении и обладают одинаковыми ролями. Отчет связан со счетами. Я не понимаю в чем дело. Есть идеи? |
|
27.01.2011, 14:43 | #5 |
Moderator
|
Не работает - это валится с ошибкой или просто не возвращает данные? Если последнее, то, возможно, это нормальное поведение вашего отчета.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
27.01.2011, 18:09 | #6 |
Участник
|
Я правильно понимаю, если бы проблема была в безопасности, т.е. не хватало бы прав на использующиеся функции,то отчет сваливался бы с ошибкой?
А в моем случае не заполняется данными одно поле, все остальное выводится. В отчете используется несколько датасетов, один из которых использует пользовательские функции, при этом в одной из функций применяется временная таблица. |
|
27.01.2011, 18:12 | #7 |
Чайный пьяница
|
Цитата:
Сообщение от alesander
Я правильно понимаю, если бы проблема была в безопасности, т.е. не хватало бы прав на использующиеся функции,то отчет сваливался бы с ошибкой?
А в моем случае не заполняется данными одно поле, все остальное выводится. В отчете используется несколько датасетов, один из которых использует пользовательские функции, при этом в одной из функций применяется временная таблица.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
28.01.2011, 09:44 | #8 |
Moderator
|
Проблема легко может быть в системе безопасности самой CRM. Если вы используете фильтрованные представления и ваша процедура запускается от имени пользователя, который к ней обратился, то вполне возможно, что у него нет прав на чтение конкретных записей, которые должна была вернуть эта функция. Иными словами все работает более чем правильно.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
28.01.2011, 11:04 | #9 |
Консультант-джедай
|
Попробуйте так
X++: Grant Execute ON dbo.YourCRMfunc TO [NT AUTHORITY\NETWORK SERVICE] GO
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
31.01.2011, 09:51 | #10 |
Участник
|
Всем спасибо за ответы. С проблемой разобрался.
Дело было в самой функции, а не в безопасности. |
|
|
|