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