|
10.08.2020, 15:55 | #1 |
Участник
|
ax2012: Как создать правильную роль для разработчика?
преамбула:
- в ax2012 перехерачили систему прав доступа по сравнению с прошлыми версиями - выключение лицензионных и конфигурационных ключей в ax2012 может привести к нежелательным побочным эффектам (на view, на унаследованных таблицах, на временных) - с другой стороны, разработчикам обычно ставят роль "системный администратор". Эта роль открывает всё-всё-всё, включая неиспользуемый функционал. вопрос: - есть ли роль разработчика, а если такой роли нет, то как создать правильную роль для разработчика? правильная роль для разработчика должна: - не содержать стандартную роль "системный администратор" - открывать доступ к средствам и инструментам разработки - открывать доступ ко всем системным настройкам типа database log, aif, dmf, cleanup и т.п. - но не открывать доступ в пользовательском интерфейсе к неиспользуемым модулям (whs, payroll, retail, recruiter и т.п. по выбору), чтобы тупо не мешалось в интерфейсе другими словами: какова методика создания роли для разработчика? Последний раз редактировалось mazzy; 10.08.2020 в 15:58. |
|
10.08.2020, 18:48 | #2 |
Banned
|
Разработчика в разработческой системе или разработчика в тестовой системе или разработчика в продуктивной системе?
|
|
10.08.2020, 21:43 | #3 |
Участник
|
зачем "или"?
расскажите о всех. И расскажите о разнице между ними. |
|
10.08.2020, 22:50 | #4 |
Banned
|
В конечном итоге, разницы не будет, действительно, поскольку рано или поздно база данных из продуктивной системы будет скопирована во все остальные.
В продуктивной системе мой текущий клиент пришел к тому, что системный администратор остался у одного-двух человек, а "внесистемные администраторы" получили: [- открывать доступ к средствам и инструментам разработки] в D365 неактуально - доступ ко всем системным настройкам типа database log, aif, dmf, cleanup и т.п. (хотя в D365 неактуально) - неиспользуемый функционал, поскольку настройщикам было банально лень (притом whs - вообще наиболее активно используемый функционал, retail тоже частями типа иерархий категорий) |
|
10.08.2020, 23:03 | #5 |
Участник
|
я повторю свой вопрос:
ax2012: Как создать правильную роль для разработчика? |
|
10.08.2020, 23:21 | #6 |
Banned
|
Ок, понял. Создать новую роль как суперпозицию всех возможных ролей пользователей. Назначить ее разработчику.
P.S. В D365 это делается опосредованно в один момент (как роль из ролей). В Ax2012, похоже, все Duties в явном виде включать придется. Последний раз редактировалось EVGL; 10.08.2020 в 23:25. |
|
10.08.2020, 23:24 | #7 |
Участник
|
какая именно роль дает доступ к средствам и инструментам разработки?
|
|
10.08.2020, 23:37 | #8 |
Axapta
|
|
|
10.08.2020, 23:45 | #9 |
Banned
|
Точно, беру свои советы обратно.
А в D365 вопрос сам собой отпадает . Да нет, в D365FO можно полностю разделить эти два вопроса. Права - правами, а разработка - разработкой. Последний раз редактировалось oip; 10.08.2020 в 23:57. |
|
11.08.2020, 08:14 | #10 |
Administrator
|
А это смотря с какой стороны смотреть. Если с позиции, что у каждого разработчика должна быть своя виртуалка, то права на этой виртуалке у разработчика должны быть админские. Если в 2012 также разделять разработку - то права также должны быть админские.
__________________
Возможно сделать все. Вопрос времени |
|
10.08.2020, 23:37 | #11 |
Administrator
|
Цитата:
Сообщение от mazzy
преамбула:
- в ax2012 перехерачили систему прав доступа по сравнению с прошлыми версиями - выключение лицензионных и конфигурационных ключей в ax2012 может привести к нежелательным побочным эффектам (на view, на унаследованных таблицах, на временных) - с другой стороны, разработчикам обычно ставят роль "системный администратор". Эта роль открывает всё-всё-всё, включая неиспользуемый функционал. вопрос: - есть ли роль разработчика, а если такой роли нет, то как создать правильную роль для разработчика? правильная роль для разработчика должна: - не содержать стандартную роль "системный администратор" - открывать доступ к средствам и инструментам разработки - открывать доступ ко всем системным настройкам типа database log, aif, dmf, cleanup и т.п. - но не открывать доступ в пользовательском интерфейсе к неиспользуемым модулям (whs, payroll, retail, recruiter и т.п. по выбору), чтобы тупо не мешалось в интерфейсе другими словами: какова методика создания роли для разработчика? Предполагается, что: 1. Разработчик имеет права везде и на всё. Это логично и правильно, ибо он всё равно сможет при желании докопаться до всего, что якобы закрыто. Такой доступ обеспечивает роль "Системный администратор", поэтому её назначают всем разработчикам. 2. Выключение конфигурационных ключей теоретически не должно ничему помешать, т.к. поля и таблицы из БД не удаляются (но удаляются данные). На практике предполагается, что у разработчика есть индивидуальная виртуальная машина, на которой включено всё, поэтому если следовать "заветам от Microsoft", то разработчик должен видеть все неиспользуемые модули. 3. Роли разработчика нет и создать её нельзя. Разработчику нужно давать роль Системный администратор (см п.1) 4. Разработчик на то и разработчик, чтобы работать в интерфейсе разработчика, следовательно наличие у него прав в дополнительные модули не должно его смущать. Роль, открывающая доступ к средствам разработки всего одна - Системный администратор, а она сразу по сути отключает какие-либо ограничения по функционалу и данным для пользователя. В контексте дальнейшего развития (D365FO и Visual Studio) такая концепция вполне себя оправдывает (на мой взгляд)
__________________
Возможно сделать все. Вопрос времени |
|
11.08.2020, 08:38 | #12 |
Участник
|
Обычно это так, но есть беда - перестают синхронизироваться вьюхи, в которых есть поля, выбираемые из параметрических таблиц, если поле имеет ключ непосредственно в поле. Начинает кричать, что поля нет. Причем само поле в базе остается, а вот механизм генерации вьюх что-то глючит. Сейчас навскидку не помню на каком именно поле и вьюхе наткнулись на такое, но точно было.
|
|
|
За это сообщение автора поблагодарили: sukhanchik (8), Logger (3). |
11.08.2020, 10:37 | #13 |
Участник
|
Цитата:
Сообщение от sukhanchik
3. Роли разработчика нет и создать её нельзя. Разработчику нужно давать роль Системный администратор (см п.1)
... Роль, открывающая доступ к средствам разработки всего одна - Системный администратор, а она сразу по сути отключает какие-либо ограничения по функционалу и данным для пользователя. Global::isSystemAdministrator есть метод Global::isDeveloper Эти методы, соответственно, вызывают методы ядра \System Documentation\Classes\SecurityRights\isSystemAdministrator \System Documentation\Classes\SecurityRights\isDeveloper Это эквивалентные вещи ? |
|
|
За это сообщение автора поблагодарили: sukhanchik (4). |
11.08.2020, 11:19 | #14 |
Administrator
|
Цитата:
Сообщение от Logger
Интересно, а зачем наряду с методом
Global::isSystemAdministrator есть метод Global::isDeveloper Эти методы, соответственно, вызывают методы ядра \System Documentation\Classes\SecurityRights\isSystemAdministrator \System Documentation\Classes\SecurityRights\isDeveloper Это эквивалентные вещи ? Здесь https://community.dynamics.com/ax/f/...-rights/274292 говорят о том, что нельзя дать права разработчика без прав системного администратора
__________________
Возможно сделать все. Вопрос времени |
|
11.08.2020, 15:38 | #15 |
Участник
|
Скорее всего зависит от лицензии, если на разработку её нет, то разные, а вот если есть, то одинаковые.
__________________
Sergey Nefedov |
|
|
За это сообщение автора поблагодарили: Logger (3). |
10.08.2020, 23:45 | #16 |
Axapta
|
А еще разработчику в некоторых случаях приходится давать роль Security Administrator, так как без нее пользователь не будет, например, админом Management Reporter.
|
|
|
За это сообщение автора поблагодарили: Logger (3). |
11.08.2020, 06:55 | #17 |
Участник
|
Цитата:
но не открывать доступ в пользовательском интерфейсе к неиспользуемым модулям (whs, payroll, retail, recruiter и т.п. по выбору), чтобы тупо не мешалось в интерфейсе
Я считаю, что разработчик должен всегда иметь возможность посмотреть "а как там сделано у них". Часто если не будет прав на интерфейс это будет сложно - только по коду, без настроек, без хотя бы небольшого количества данных и прохода отладчиком понять что-то сложно. |
|
11.08.2020, 17:50 | #18 |
Administrator
|
А разве можно в 2012 не иметь лицензии на разработку, имея роль системного администратора?
__________________
Возможно сделать все. Вопрос времени |
|
11.08.2020, 17:51 | #19 |
Banned
|
|
|
|
За это сообщение автора поблагодарили: sukhanchik (8). |
12.08.2020, 13:40 | #20 |
Участник
|
Больше всего удивило наличие проверки на Global::isDeveloper в D365 в объектах SysTableBrowser. Мне кажется isDeveloper стало архаизмом в рамках D365.
По поводу разделения на D365 (не в тему, но тем не менее) На дев боксах даже если не дать доступа к базе данных, полученной методом копирования с рабочей, можно всегда воспользоваться AOSService\PackagesLocalDirectory\Bin\AdminUserProvisioning.exe и указанная тобою почта получает безусловный полный админ доступ к юзер интерфейсу. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
|
|