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

«Ко­рре­кти­ро­вка таблиц базы данных с помощью ABAP»
Олег Точенюк:
Андрей а вам никто никогда не говорил, что обновлять таблицы базы данных SAP категорически запрещено, независимо от того чем обусловлены такие желания. Свои Z-таблицы, да сколько угодно, но......
«Тра­нза­кция SM02: сообщения в SAP системе»
Олег Башкатов:
С помощью ФМ TH_POPUP можно отправить сообщение конкретному пользователю :-)
«MVC или как писать отчеты быстро и просто»
Олег Точенюк:
>>"Самое главное - это расположить инклуды с моделью и представлением до инклуда с контроллером"   А может проще написать в начале что-то типа: CLASS: <имя> DEFINITION...

База знаний

Вы можете подписаться на эту колонки этого автора, если авторизируетесь или зарегистрируетесь

Как понять каких полномочий не хватает пользователю?

08 сентября 2016, 02:15

Как вы уже, наверное, слышали, в SAP системе (AS ABAP её части) для разграничения доступа пользователей к тем или иным функциям системы используется концепция ролей и полномочий.

В системе действует принцип "что не разрешено, то запрещено". То есть изначально пользователю не разрешено ничего, кроме входа (логина) в систему.

Минимальный набор операций для того или иного бизнес-процесса выделяется в роль, которая имеет описание и меню, в котором могут быть транзакции, отчеты или внешние ссылки. Для каждой роли генерируется профиль полномочий, который содержит набор полномочий (или  разрешений) минимально достаточных для выполнения набора операций, для которого создана роль (Рис. 1). Про генерацию профиля я писал в этом посте.

Рис. 1. Роли и полномочия в SAP системе.

Роли присваиваются пользователям, после чего пользователи получают, указанный в них, набор полномочий.

Присвоенный пользователю набор полномочий в SAP системе можно посмотреть в транзакции SU56 (Рис. 2).

Рис. 2. Список присвоенных пользователю полномочий.

Проверка полномочий в SAP системе производится в 2 этапа:

  1. Проверка на запуск транзакции.
  2. Проверка на полномочия для тех или иных действий с объектом (просмотр, создание, удаление, изменение и т.п.) в транзакции.

Покажу на примере.

Пользователь пытается запустить транзакцию SM04 и получает уведомление об отсутствии полномочий на запуск транзакции (Рис. 3).

Рис. 3. Сообщение об отсутствии полномочий на запуск транзакции SM04.

Для анализа недостающих полномочий необходимо в поле запуска транзакции набрать транзакцию SU53 (Рис. 4).

Рис. 4. Анализ недостастающих полномочий в транзакции SU53.

Как видно из снимка экрана, сообщение об ошибке это результат неудачной проверки первого типа - на запуск транзакции, в данном случае SM04.

Стоит отметить, что все полномочия в SAP системе выделяются через объекты полномочий, у которых есть поля и присвоенные им значения. Для удобства поиска и выбора все объекты полномочий объединены в классы.

За полномочия на запуск транзакции (первый этап проверки) отвечает объект полномочий S_TCODE (Рис. 4). Значениями поля TCD являются транзакции, которые пользователь может запускать. В данном случае система искала в этом объекте значение SM04, не нашла и выдала сообщение об ошибке.

После того, как я добавил такой объект с нужным значением поля в роль, которая присвоена пользователю, и заново сгенерировал профиль полномочий для этой роли, пользователь сделал вторую попытку запуска транзакции SM04. Система разрешила запуск транзакции, показав основной экран транзакции. Но при дальнейшей работе, например, попытке просмотреть список режимов у любого пользователя в транзакции SM04 вновь выдала сообщение об ошибке. На этот раз, на предмет проверки полномочий на объект (Рис. 5).

Рис. 5. Сообщение об отсутствии полномочий на администрирование процессов/программ в SM04.

Анализ полномочий, транзакция SU53, показал отсутствие уже совсем другого объекта полномочий (Рис. 6). Кстати, если проверять полномочия из запущенной транзакции, то стоит вбивать "/nSU53". Об этом я писал тут.

Рис. 6. Анализ полномочий на работу в транзакции SM04.

Данный инструмент показывает только те полномочия, на проверке которых система "споткнулась". То есть только один, последний, шаг.

Для получения полного списка необходимых полномочий на выполнение той или иной операции в системе существует другой инструмент. Но об этом в другой раз.

Учтите, что если вы хотите анализировать у пользователей результаты последней проверки полномочий, то необходимо им добавить полномочия на запуск транзакции SU53 - объект S_TCODE. Либо можно использовать параметр auth/tcodes_not_checked (Рис. 7). Можно ввести значения "SU53", "SU56" или сразу обе транзакции "SU53 SU56" и, тогда система не будет проводить первый тип проверки для этих транзакций.

Рис. 7. Параметр для отключения проверок для транзакций SU53, SU56.

Подробности о концепции ролей и полномочий можно найти в курсе "SAP ADM940 - ABAP AS Autorization Concept".

Ключевые слова : Разработка на ABAP / ABAP Development

Функциональная область : Информационные технологии / IT, Basis, ABAP

Ролевое назначение : SAP Консультант / Consultant