Трассировка полномочий и определение недостающих прав пользователя для выполнения транзакции
В статье рассмотрены инструменты решения проблем, возникающих из-за неполноты прав пользователя при выполнении транзакции. В статье описано использование в качестве таких инструментов транзакция SU53 и процедура трассировки полномочий пользователя. С помощью трассировки полномочий удаётся определить недостающие права пользователя для выполнения транзакций и отследить, какие объекты полномочий проверяются при выполнении пользователем той или иной операции в системе.
В статье рассмотрены инструменты решения проблем, возникающих из-за неполноты прав пользователя при выполнении транзакции. В статье описано использование в качестве таких инструментов транзакция SU53 и процедура трассировки полномочий пользователя. С помощью трассировки полномочий удаётся определить недостающие права пользователя для выполнения транзакций и отследить, какие объекты полномочий проверяются при выполнении пользователем той или иной операции в системе.
Использование транзакции SU53
Транзакция SU53 показывает результаты проверки системой полноты полномочий пользователя в последней неуспешной транзакции. На экран выводится информация о неполноте полномочий для последнего объекта, на операцию с которым недостаточно прав у пользователя, код соответствующей операции и значение параметра – ограничения выборки. Это удобная транзакция для случая, когда система сообщает о том, что необходимых полномочий у пользователя нет, но не конкретизирует, каких именно полномочий и для каких объектов нет.
Для демонстрационных примеров я создам двух пользователей в системе:
- SAP_ADMIN– спрофилемSAP_ALL;
- SAP_USER – с ролью ZZSAP_LO_EMPLOYEE, которая является копией стандартной роли SAP_LO_EMPLOYEEи дополнительно с правами на запуск транзакцийSU53 и ME2L.
В своих примерах я буду использовать функциональность GuiXT, где в файле rsession.txtсодержится скрипт, выводящий имя пользователя в заголовок окна SAP (Примечание. Вход в систему осуществляется на русском языке):
TitlePrefix"*** User: &V[_user]***"
Благодаря этому скрипту, несмотря на то, что будет запущено несколько окон SAPот имени разных пользователей, легко будет определить, окно какого пользователя активно в данный момент (без обращения к информационному табло системы в правом нижнем углу экрана). Более того, будет удобнее использовать сочетание клавиш Alt+Tab, так как в строке заголовка окна выводится имя пользователя – «владельца экрана», к окну которого планируется перейти (Рис.1).
Рис.1 Использование файла rsession.txt надстройки GuiXTдля обозначения пользователя – «владельца экрана»
Рассмотрим Пример 1.
В примере демонстрируется возможность определения объекта неполноты полномочий с помощью транзакции SU53 в случае, когда система при выполнении какой-либо транзакции сообщает об отсутствии или неполноте полномочий (без указания объектов неполноты).
Исходное состояние полномочий пользователя SAP_USER приведено в Таблице 1.
Таблица 1. Исходное Состояние полномочий пользователя SAP_USER |
||
Имеющиеся полномочия |
1) Объекты полномочий стандартной роли SAP_LO_EMPLOYEE 2) запуск транзакции SU53 3) запуск транзакции ME2L |
|
Неполнота полномочий |
Нет полномочий на просмотр всех видов заказов на поставку по всем закупочным организациям и группам закупок; |
Запустим транзакцию ME2L от имени пользователя SAP_USER (Рис.2) (как указано выше, у пользователя есть права только на запуск этой транзакции)
Рис.2 Запуск транзакции ME2Lот имени пользователя SAP_USER
Система выдаст следующее сообщение «У вас нет полномочий на транзакцию ME2L» (Рис.3).
Рис.3 Сообщение об отсутствующих полномочиях на транзакцию ME2L
В подобных случаях следует использовать транзакцию SU53, которая показывает, для какого именно объекта у пользователя отсутствуют полномочия. Для запуска используем команду /nSU53 (Рис.4), тем самым мы закрываем текущее окно и переходим к просмотру данных полномочий пользователя.
Рис.4 Запуск /nSU53 для получения анализа последней проверки полномочий системой
Мы увидим, что ошибка вызвана отсутствием полномочий на объект M_BEST_EKO (закупочная организация в заказе на поставку), а если быть точнее, то отсутствуют права на операцию 03 (просмотр) для объекта полномочий M_BEST_EKO (Рис.5).
Рис.5 Отсутствуют права на объект полномочий M_BEST_EKO
Для обеспечения пользователя необходимым объёмом полномочий можно или отредактировать имеющуюся у пользователя роль, или добавить пользователю дополнительную роль, обладающую соответствующим объёмом прав. Решение принимает по ситуации консультант направления совместно с консультантом по базису. Технология добавления и исправления полномочий и ролей – отдельная тема.
Добавим пользователю SAP_USER недостающие права для работы с объектом M_BEST_EKO: укажем в его роли объект полномочий M_BEST_EKOна операцию 03 (просмотр)со значением 1000. Таким образом, после выполненного редактирования роли пользователь сможет просматривать заказы на поставку с закупочной организацией 1000, но не сможет просматривать заказы на поставку с любыми другими закупочными организациями.
Рассмотрим Пример 2.
Покажем, что добавление отсутствующих полномочий согласно информации транзакции SU53 (см. Пример 1) не гарантирует пользователю возможность успешного выполнения транзакции (в данном примере – ME2L) после добавления полномочий.
Текущее состояние полномочий пользователя SAP_USER приведено в Таблице 2.
Таблица 2. Текущее состояние полномочий пользователя SAP_USER.
Имеющиеся полномочия |
1) Объекты полномочий стандартной роли SAP_LO_EMPLOYEE 2) запуск транзакции SU53 3) запуск транзакции ME2L. 4) Имеются полномочия на просмотр заказов на поставку по закупочной организации с кодом 1000. |
|
Неполнота полномочий |
Нет полномочий на просмотр всех видов документа заказа на поставку по всем закупочным организациям, отличным от 1000, и всем группам закупок; |
Ещё раз запустим транзакцию ME2L, указав в качестве параметра запуска отчета закупочную организацию 1000.. Транзакция отобразит селекционный экран отчёта ME2L. Однако при попытке запуска отчёта система снова выдаст неинформативное сообщение «Из-за отсутствия полномочий список неполный» (Рис.6).
Рис.6 Попытка запуска выполнения отчета ME2L
Запустим транзакцию /nSU53. Получим информацию об отсутствии прав на операцию 08 (Просмотр документов изменений) для объекта M_BEST_BSA (Вид документа в заказе на поставка).
Рис.7 Отсутствие полномочия на объект M_BEST_BSA (Вид документа в заказе на поставку)
Добавим пользователю SAP_USER отсутствующие полномочия на работу с объектом M_BEST_BSA Вид документа в заказе на поставку) (для упрощения примера, я добавил пользователю права на все виды заказов на закупку и все операции с ними; на практике, полномочия назначаются, исходя из бизнес - сценария).
Рассмотрим Пример 3.
Покажем, что отслеживания недостающих полномочий с помощью транзакции SU53 – трудоёмкий процесс.
Текущее состояние полномочий пользователя SAP_USER приведено в Таблице 3.
Таблица 3. Текущее состояние полномочий пользователя SAP_USER
Имеющиеся полномочия |
1) Объекты полномочий стандартной роли SAP_LO_EMPLOYEE 2) запуск транзакции SU53 3) запуск транзакции ME2L. 4) Имеются полномочия на просмотр всех видов документа заказа на поставку. 5) Имеются полномочия на просмотр заказов на поставку по закупочной организации с кодом 1000. |
|
Неполнота полномочий |
Нет полномочий на просмотр заказов на поставку по всем закупочным организациям, отличным от 1000, и всем группам закупок; |
Выполним транзакцию ME2L ещё раз. Мы получим такое же сообщение об отсутствующих полномочий как в примере 2 (Рис.6), и снова запустим транзакцию /nSU53 . Теперь мы получим информацию о неполноте полномочий, но уже для другого объекта (Рис.8): M_BEST_EKG(группа закупок в заказе на поставку).
Рис.8 Отсутствуют права на объект полномочий M_BEST_EKG
Добавим пользователю SAP_USER соответствующие полномочия на объект M_BEST_EKG и попробуем выполнить отчёт ME2L ещё раз.
Итерацию запуска транзакции SU53 и коррекцию прав приходится повторять до тех пор, пока транзакция выполнится без сообщения об ошибке (отчёт выполнится без ошибок).Как видно, это – может быть весьма трудоёмким процессом.
Рассмотрим Пример 4.
Покажем, что при отсутствии полномочий на несколько объектов полномочий (а именно: отсутствие авторизации на просмотр заказов на закупку по закупочным организациям, отличным от 1000; отсутствие полномочий на GUI-операции) в транзакции SU53 будут показываться различные результаты в зависимости от формата вывода отчета.
Текущее состояние полномочий пользователя SAP_USER приведено в Таблице 4.
Таблица 4. Текущее состояние полномочий пользователя SAP_USER
Имеющиеся полномочия |
1) Объекты полномочий стандартной роли SAP_LO_EMPLOYEE 2) запуск транзакции SU53 3) запуск транзакции ME2L. 4) Имеются полномочия на просмотр всех видов заказа на поставку. 5) Имеются полномочии на просмотр заказов на поставку со всем группами закупок. 6) Имеются полномочия на просмотр заказов на поставку по закупочной организации с кодом 1000. |
|
Неполнота полномочия |
Нет полномочий на просмотр заказов на поставку по всем закупочным организациям, отличным от 1000;
|
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти
Обсуждения 5
Комментарий от
Пётр Ромащенко
| 20 ноября 2017, 16:38
Вот только скринчики послетали (или это только у меня?..). Если проблема действительно есть, не могли бы вы их подправить? Спасибо! :-)
Комментарий от
Leonid Tkachuk
| 07 сентября 2018, 13:17
Комментарий от
Олег Башкатов
| 08 сентября 2018, 20:41
Leonid Tkachuk 07 сентября 2018, 13:17
Некоторые скрины не отображаются в статье, т.к. они ссылаются на локальные ресурсы (на диске C).
Комментарий от
Leonid Tkachuk
| 11 сентября 2018, 12:16
Олег Башкатов 08 сентября 2018, 20:41
Леонид, скажите, пожалуйста, номера рисунков, которые не отображаются.
Комментарий от
Вячеслав Птицын
| 26 ноября 2018, 05:10