Коллеги, помогите с ролями для 6.40 и 7.00 cистем....

Автор bdmalex, Серпень 11, 2009, 12:50:44 ПП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

bdmalex

Всем, привет!

Наше командование для "нового" проекта жадет допустить внешних консалтеров с ограничениями...
Хотят дать пользователям роль с доступом к se16 "на просмотр", но при этом хотят, чтобы
для ряда таблиц(из известного списка) не было возможности на просмотр
содержимого таблиц этого списка(содержимое остальных таблицы смотреть разрешено...)...

Сижу вот голову ломаю - КАК это реализовать..? Помогите - кто чем может...:)..

Uukrul

Цитата: bdmalex від Серпень 11, 2009, 12:50:44 ПП
Сижу вот голову ломаю - КАК это реализовать..? Помогите - кто чем может...:)..
Это никак... кстати если это какая-то тестовая система, то наверное только путем бэкапа данных этих таблиц потом удаления в них данных и последующее восстановление. Кстати как вариант так подумал сделать транзакцию обертку вокруг SE16 куда зашить запрет на список таблиц. Полномочия дать только на эту спец транзакцию, но если у них будет доступ на /h то это тоже не сильно поможет.

Uukrul

Так сейчас глянул, вариант через SHD0 сделать похоже не получится  ::)

Uukrul

Короче вот программка потом делаешь для ее запуска транзакцию ZSE16 на которую даешь полномочия и будет счастье... а SE16 вообще забираешь из STCODE.

REPORT zmy_se16 .

TABLES: databrowse.
PARAMETERS: p_tabnam LIKE databrowse-tablename.

*--------------------------------------------------------
DATA: lt_parameters LIKE usr05 OCCURS 1 WITH HEADER LINE.


*---------
* Тут вставить проверку на имена таблиц
* Если, таблица запрещенная тогда на выход
* Иначе вызвать вот такой вот код
*---------
lt_parameters-parid = 'DTB'.
lt_parameters-parva = p_tabnam.
APPEND lt_parameters.

CALL FUNCTION 'MMIM_CALL_TRANSACTION'
    EXPORTING
         i_transaction       = 'SE16'
         i_skip_first_screen = 'X'
         i_new_mode          = ' '
    TABLES
         it_parameters       = lt_parameters
    EXCEPTIONS
         not_authorized      = 1
         OTHERS              = 2.


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


Uukrul

да точно надо было глянуть сразу на реализацию...там call function 'VIEW_AUTHORITY_CHECK' вызывается который внутри проверяет это все дело через
   authority-check object 'S_TABU_DIS'  "check by class
      id 'ACTVT'      field activity
      id 'DICBERCLS'  field tddat-cclass.

Uukrul

Хотя я тут еще посмотрел.. в общем если использовать объект, то надо перечислить все таблицы к которым требуется доступ и их присвоить классу, что сложнее, чем перечислить список таблиц по правилу запретить доступ к таблицам А,В,С а ко всем остальным разрешить. Так что вариант с переопределением SE16 тоже имеет право на жизнь.

SMF spam blocked by CleanTalk