Показаны сообщения с ярлыком PFCG. Показать все сообщения
Показаны сообщения с ярлыком PFCG. Показать все сообщения

2 сентября 2016 г.

Транзакция ST01: трассировка полномочий

В одном из прошлых постов с названием "Как понять каких полномочий не хватает пользователю?" я описал процесс, как с помощью транзакции SU53 проверить каких именно полномочий не хватает пользователю в SAP системе для выполнения той или иной операции.

Данный инструмент удобен для отлаживания готовой роли или исправления ошибок в полномочиях пользователя. В случае создания новой роли или добавления в существующую роль набора полномочий для выполнения новой операции или бизнес процесса данный инструмент не подходит. Специалист вынужден проходить все проверки полномочий одну за другой, внося изменения в роль. Если проверок больше 2-3, то процесс растягивается во времени и превращается в рутинную операцию.

Поэтому в данном случае, удобнее воспользоваться другим инструментом - транзакцией ST01. Данный инструмент позволяет провести системную трассировку, в том числе и проверяемых полномочий.

Входим в систему под пользователем, который имеет достаточный набор полномочий для выполнения нужной операции или бизнес процесса. Открываем два режима (сессии). В одном режиме запускаем транзакцию ST01 и активируем трассировку, включив опции для трассировки полномочий (рис. 1).

Рис. 1. Активация трассировки для проверки полномочий.

После того, как трассировка активировалась (рис. 2), переходим ко второму режиму.

Рис. 2. Статус об активности трассировки.

Во втором режиме выполняем полностью операцию или бизнес процесс, полномочия для которого мы хотим получить. Например, транзакцию SM04 (список пользователей системы). Можно посмотреть список режимов для пользователя и удалить один режим (рис. 3).

Рис. 3. Запуск транзакции SM04.

Возвращаемся к первому режиму и выключаем трассировку (рис. 4).

Рис. 4. Выключение трассировки в транзакции ST01.

Теперь можно проанализировать журнал трассировки, нажав кнопку "Анализ" (рис. 5).

Рис. 5. Анализ трассировки полномочий.

Устанавливаем фильтр на отображение только записей о проверке полномочий (рис. 6).

Рис. 6. Установка фильтров для чтения журнала трассировки.

Анализируем журнал, получая необходимые нам объекты полномочий со значениями (рис. 7). Обратите внимание, вот наш объект полномочий S_ADMI_FCD из прошлого поста.

Рис. 7. Журнал трассировки полномочий.

Если после создания/изменения роли таким образом останутся ошибки при проверки полномочий у пользователя, то используем уже известный инструмент - транзакцию SU53.


Автор: Шиболов Вячеслав Анатольевич


16 августа 2016 г.

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

Как вы уже, наверное, слышали, в 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".

2 марта 2010 г.

PFCG: имя профиля при генерации

Система полномочий в системе SAP включает в себя роли и профили полномочий. Роль содержит меню, присвоение пользователям и описание. Роли есть простые и групповые (список простых ролей). Профили полномочий содержат полномочия и привязаны к роли. В SAP на полномочия действует принцип: "то что не разрешено, то запрещено".

Начиная с версии SAP 4.6C, прямое ведение профилей полномочий не рекомендуется. Для ведения ролей и профилей полномочий используется транзакция PFCG. При создании новой простой роли после ведения полей полномочий необходимо сгенерировать профиль полномочий, который получает новое имя и привязывается к данной роли. Имя профиля полномочий генерируется автоматически системой по следующей процедуре:
  • T-FT<шестизначный номер>,
где "F" - первый символ идентификатора системы (SID), "T" - третий символ идентификатора системы (SID), <шестизначный номер> = "номер из манданто-зависимой таблицы AGR_NUM_2" + 1.

В связи с такой процедурой время от времени в некоторых системных ландшафтах могут происходить коллизии при транспортировке ролей с профилями полномочий из системы разработки в другие системы. Например. Если в ландшафт включены системы HDQ, HTQ и HPQ, то имена профилей, сгенерированных в разных системах, будут совпадать, так как у SID-ов систем идентичны первые и последние символы. Если номера, которые хранятся в таблице AGR_NUM_2, в разных мандантах одной системы совпадают или пересекаются. А роли ведутся в разных мандантах и импортируются в тестовую и продуктивную системы. При этом возникают коллизии при совпадении имен профилей полномочий в целевых системах.

Есть несколько путей решения данной проблемы. Все они описаны в замечательной SAP note # 1380203.

У меня была проблема, что роли ведутся разными модулями в разных мандантах системы разработки. Иногда в продуктивной системе возникали коллизии при переносе с новой ролью профиля полномочий, который именем совпадал с профилем другой роли в продуктивной системе. Коллизия заключалась в том, что профиль новой роли не переносился. Решил так (1 способ из вышеуказанной ноты). Просмотрел таблицу AGR_1016 в продуктивной системе и системе разработки на предмет существующих профилей полномочий. Выбрал диапазоны для каждого из мандантов. Изменил значения в таблице AGR_NUM_2 в каждом манданте системы разработки:


При генерации нового профиля полномочий для роли в 111 манданте получаем то, что хотели:


Если в ландшафте неудачно даны имена идентификаторам систем, то необходимо применить второй способ решения проблемы из SAP note # 1380203.

P.S. Всех с наступлением весны! ;)

Автор: Шиболов Вячеслав Анатольевич