Инструменты пользователя

Инструменты сайта


axapta:безопасность

Раздел: Администрирование


Здесь собираются сведения по поводу системы безопасности в Axapta

ДоступНаУровнеЗаписей

КакПрограммноИзменитьПароль


1. Форма раздачи прав несет в себе лишь ту бяку - что при первом просмотре дерева права грузятся в память, после чего там и остаются… до перезапуска Аксапты. Более бяк там нет… Она просто строит дерево

2. Бэкап таблиц ««SysSecurity*»» по-хорошему надо делать по-другому: Модифицируется экспорт/импорт прав в Аксапте таким образом - чтобы в получившемся файле лежали только ИМЕНА элементов АОТ. Т.е. по сути - нужно экспортнуть таблички ««AccessRightsList»» и табличек ««SysSecurity*»», заменив при экспорте ID-шники на имена. Ну и ессно обратно - при импорте - подставив вместо имен текущие значения ID-шников. При экспорте - надо не забыть сохранить права перед экспортом. После импорта - их надо перегрузить и обновить дерево в форме Файлы, в которых сохранены права - можно хранить в сейфе

3. Упаси Бог изменять права в трехуровневой конфигурации. Аксапта сохраняет права по принципу кто последний вышел из нее - тот и прав. А если вы настроили права, а после этого другой юзер вышел - можете смело считать свою работу напрасной. При импорте прав (т.е. изменении данных в табличках) - крайне нежелательно вообще иметь АОС под рукой…. Ибо его наличие аккурат приводит к глюкам, описанным George Nordic


Пользователю можно сбросить пароль, если есть доступ к SQL серверу. Для этого надо очистить поле OSACCOUNTNAME таблицы UserInfo (3959)

2888 – некоторе описание внутренностей системы контроля доступа в Axapta

7654


Данный джоб выводит в InfoLog перечень групп, которым доступны зданные пункты меню (контейнер menuItems)

static void Test_AccessibleForWho(Args _args)
{
    SecurityKeySet secSet;
    UserGroupInfo userGroup;
    DomainInfo domain;
    str items;
    container menuItems = [
        [menuItemDisplayStr(InventTable), AccessRecordType::MenuItemDisplay],
        [menuItemDisplayStr(LedgerTable), AccessRecordType::MenuItemDisplay]
    ];
    str accessibleMenuItems()
    {
        int i;
        MenuItemName name;
        AccessRecordType type;
        str ret;
    ;
        for (i=1; i<=conLen(menuItems); i++)
        {
            [name, type] = conPeek(menuItems, i);
            if (secSet.menuItemAccess(name,  type))
            {
                if (ret)
                    ret += ', ';
                ret += SysDictMenu::newMenuItem(name,
                    (type == AccessRecordType::MenuItemAction) ?
                        MenuItemType::Action : MenuItemType::Display
                ).label();
            }
        }
        return ret;
    }
;
    while select userGroup
    {
        while select domain
        {
            secSet  = SysSecurity::constructSecurityKeySet();
            secSet.loadGroupRights(userGroup.id, domain.Id);
            items = accessibleMenuItems();
            if (items)
            {
                info(strFmt('%1;%2: %3',  userGroup.id, domain.Id, items));
            }
        }
    }
}
axapta/безопасность.txt · Последнее изменение: 2018/04/13 22:43 (внешнее изменение)