Меню

Трассировка полномочий и определение недостающих прав пользователя для выполнения транзакции

В статье рассмотрены инструменты решения проблем, возникающих из-за неполноты прав пользователя при выполнении транзакции. В статье описано использование в качестве таких инструментов транзакция 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

Неполнота полномочий

Нет полномочий на просмотр всех видов заказов на поставку по всем закупочным организациям и группам закупок;
нет полномочий на GUI-операции (нет прав на объект S_GUI).

Запустим транзакцию ME2от имени пользователя 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, и всем группам закупок;
нет полномочий на GUI-операции (нет прав на объект S_GUI).

Ещё раз запустим транзакцию 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, и всем группам закупок;
нет полномочий на GUI-операции (нет прав на объект S_GUI).

Выполним транзакцию ME2ещё раз. Мы получим такое же сообщение об отсутствующих полномочий как в примере 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

Некоторые скрины не отображаются в статье, т.к. они ссылаются на локальные ресурсы (на диске C).

Комментарий от  

Олег Башкатов

  |  08 сентября 2018, 20:41

Некоторые скрины не отображаются в статье, т.к. они ссылаются на локальные ресурсы (на диске C).

Леонид, скажите, пожалуйста, номера рисунков, которые не отображаются.

Комментарий от  

Leonid Tkachuk

  |  11 сентября 2018, 12:16

Леонид, скажите, пожалуйста, номера рисунков, которые не отображаются.

Спасибо, "полечилось" почти все, кроме 1 - clip_image030.jpg (2-й рисунок после слов "Просмотр для другого пользователя/объекта полномочий F5")

Комментарий от  

Вячеслав Птицын

  |  26 ноября 2018, 05:10

Спасибо, очень пригодилось!