Текущее время: Вс, июл 20 2025, 17:55

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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