Текущее время: Сб, июл 19 2025, 16:19

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Код выполняемый оператором 'AUTHORITY-CHECK'
СообщениеДобавлено: Пт, авг 02 2013, 20:16 
Менеджер
Менеджер

Зарегистрирован:
Чт, окт 30 2008, 18:22
Сообщения: 532
Пол: Мужской
Подскажите, как можно увидеть код выполняемый оператором 'AUTHORITY-CHECK'?
При помощи ST05 я вижу к каким таблицам он обращается, хотелось бы увидеть логику выполнения этих запросов.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Код выполняемый оператором 'AUTHORITY-CHECK'
СообщениеДобавлено: Пт, авг 02 2013, 22:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Транзакция ST01 производит проверку полномочий. По этой трассировке можно проследить, в каком месте программы производился вызов AUTHORITY-CHECK.
ЗЫ: Зачем вам логика выполнения оператора ABAP?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Код выполняемый оператором 'AUTHORITY-CHECK'
СообщениеДобавлено: Сб, авг 03 2013, 06:36 
Менеджер
Менеджер

Зарегистрирован:
Чт, окт 30 2008, 18:22
Сообщения: 532
Пол: Мужской
Удав написал(а):
ЗЫ: Зачем вам логика выполнения оператора ABAP?

Хочу разобраться с так называемым "наложением" полномочий. Почему при наличии одного объекта полномочий в нескольких ролях в каких то случаях происходит наложение, а в каких то нет.
Решил копнуть "поглубже" AUTHORITY-CHECK, возможно ответ на мой вопрос найдётся там.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Код выполняемый оператором 'AUTHORITY-CHECK'
СообщениеДобавлено: Сб, авг 03 2013, 08:43 
Модератор
Модератор

Зарегистрирован:
Пн, июн 27 2011, 08:25
Сообщения: 479
Smok написал:
Удав написал(а):
ЗЫ: Зачем вам логика выполнения оператора ABAP?

Хочу разобраться с так называемым "наложением" полномочий. Почему при наличии одного объекта полномочий в нескольких ролях в каких то случаях происходит наложение, а в каких то нет.
Решил копнуть "поглубже" AUTHORITY-CHECK, возможно ответ на мой вопрос найдётся там.


а можете роль показать и пояснить, когда происходит наложение, а когда нет?
роль можно выгрузить в .txt

сколькр сталкивался - роли работают однообразно.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Код выполняемый оператором 'AUTHORITY-CHECK'
СообщениеДобавлено: Сб, авг 03 2013, 11:48 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Smok написал:
Хочу разобраться с так называемым "наложением" полномочий. Почему при наличии одного объекта полномочий в нескольких ролях в каких то случаях происходит наложение, а в каких то нет.

Я знаю 2 случая:
1. Наложение полномочий происходит, когда в программе происходит проверка 2-х или более объектов полномочий и у пользователя есть 2 роли с разными комбинациями полномочий для этих объектов.
Пример: программа SAPMV45A, проверка полномочий происходит по 2-м объектам: V_VBAK_VKO:
AUART Вид торгового документа
ACTVT Операция

и V_VBAK_AAT:
VKORG Сбытовая организация
VTWEG Канал сбыта
SPART Сектор
ACTVT Операция

У пользователя есть 2 роли:
Для одной сбытовой организации, канала сбыта и сектора есть полномочия на торговый документ вида Z1
Для другой сбытовой организации, канала сбыта и сектора есть полномочия на торговый документ вида Z2

В результате у пользователя есть полномочия на работу с торговыми документами видов Z1 и Z2 для обоих орг.единиц.

2. При проверке полномочий используется не AUTHORITY-CHECK, а ФМ SUSR_USER_AUTH_FOR_OBJ_GET, который считывает все комбинации полномочий для определенного объекта полномочий.
В результате после считывания полномочий есть таблица с комбинацией полей полномочий и их значений.
Если у пользователя 2 роли с разными ACTVT или другим полем, то они анализируются без учета других полей в конкретном полномочии.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Код выполняемый оператором 'AUTHORITY-CHECK'
СообщениеДобавлено: Пн, авг 05 2013, 07:27 
Менеджер
Менеджер

Зарегистрирован:
Чт, окт 30 2008, 18:22
Сообщения: 532
Пол: Мужской
Удав написал(а):
Я знаю 2 случая:
....
2. При проверке полномочий используется не AUTHORITY-CHECK, а ФМ SUSR_USER_AUTH_FOR_OBJ_GET, который считывает все комбинации полномочий для определенного объекта полномочий.
...

Со случаем 2 не встречался. Спасибо за информацию, возможно пригодится.

Удав написал(а):
1. Наложение полномочий происходит, когда в программе происходит проверка 2-х или более объектов полномочий и у пользователя есть 2 роли с разными комбинациями полномочий для этих объектов.
...
У пользователя есть 2 роли:
Для одной сбытовой организации, канала сбыта и сектора есть полномочия на торговый документ вида Z1
Для другой сбытовой организации, канала сбыта и сектора есть полномочия на торговый документ вида Z2

В результате у пользователя есть полномочия на работу с торговыми документами видов Z1 и Z2 для обоих орг.единиц.


Именно этот момент интересует.
ST05 показывает, что в программе SAPMV45A сначала из USRBF2 считываются отдельные полномочия к объекту полномочий. Затем из UST12 считываются значения полномочий по каждому отдельному полномочию.
Просмотр кода указывает на
AUTHORITY-CHECK OBJECT 'V_VBAK_AAT'
ID 'AUART' FIELD US_AUART
ID 'ACTVT' FIELD DA_ACTVT.

Как я понимаю при работе AUTHORITY-CHECK должна быть создана некая внутренняя таблица, содержащая значения полномочий для конкретного объекта полномочий, и применительно к объекту 'V_VBAK_AAT' значения US_AUART и DA_ACTVT должны сравниваться с данными таблицы.
Вот эту таблицу и хотелось бы увидеть, а также код, который производит сравнение.

Я не абапер, поэтому прошу сильно не пинать и по возможности объяснить на пальцах.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Код выполняемый оператором 'AUTHORITY-CHECK'
СообщениеДобавлено: Пн, авг 05 2013, 07:51 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
Абап-кода который выполняется оператором AUTHORITY-CHECK скорее всего нет. Проверки происходят в ядре (там наверное C или C++) - исходные коды этого дела есть только у сапа. Вообще никаких неожиданностей при вызове AUTHORITY-CHECK происходить не должно - если в каком-то профиле есть разрешающая запись - все хорошо. "Наложение" должно происходить всегда. Попробуйте показать пример где наложение не происходит.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Код выполняемый оператором 'AUTHORITY-CHECK'
СообщениеДобавлено: Пн, авг 05 2013, 10:00 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Smok написал:
Как я понимаю при работе AUTHORITY-CHECK должна быть создана некая внутренняя таблица, содержащая значения полномочий для конкретного объекта полномочий, и применительно к объекту 'V_VBAK_AAT' значения US_AUART и DA_ACTVT должны сравниваться с данными таблицы.
Вот эту таблицу и хотелось бы увидеть, а также код, который производит сравнение.

Я не абапер, поэтому прошу сильно не пинать и по возможности объяснить на пальцах.

Для того, чтобы разобраться в механизме проверки полномочий, знание ABAP не нужно.
Для анализа полномочий есть транзакция SUIM, для просмотра конкретной роли - транзакция PFCG. Для трассировки полномочий, как я уже упоминал, есть ST01.
В нашем случае для предотвращения наложения полномочий была добавлена проверка полномочий на Z-объект, в котором кроме вида документа(AUART) и операции(ACTVT) были добавлены поля по орг. единицам (VKORG, SPART).

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Код выполняемый оператором 'AUTHORITY-CHECK'
СообщениеДобавлено: Пн, авг 05 2013, 10:50 
Менеджер
Менеджер

Зарегистрирован:
Чт, окт 30 2008, 18:22
Сообщения: 532
Пол: Мужской
Удав написал(а):
В нашем случае для предотвращения наложения полномочий была добавлена проверка полномочий на Z-объект ...

Конечной целью моего вопроса было найти лазейку в стандарте, чтобы по возможности отказаться от Z-объектов. Но видимо пока не получится.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Код выполняемый оператором 'AUTHORITY-CHECK'
СообщениеДобавлено: Пн, авг 05 2013, 19:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Smok написал:
Удав написал(а):
В нашем случае для предотвращения наложения полномочий была добавлена проверка полномочий на Z-объект ...

Конечной целью моего вопроса было найти лазейку в стандарте, чтобы по возможности отказаться от Z-объектов. Но видимо пока не получится.

Лучше сделать Z-объект полномочий, чем полностью писать свою систему полномочий. Тоже на Z, только программах. :wink:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB