GRANT_ALL_RIGHTS


Синтаксис

GRANT_ALL_RIGHTS();

GRANT_ALL_RIGHTS(ASLName: STRING[];
                 ModeOrProcPattern: STRING[]);

Описание

Процедура дает транзакциям некоторых программ (каких именно - зависит от параметров) привилегию полного доступа ко всем регулярным таблицам БД. Исключений не выбрасывает. Привилегия соответствует правам доступа "SVIRD A". На подключаемые таблицы БД привилегия не распространяется.

Первый вариант процедуры (без параметров) временно дает привилегию полного доступа транзакции исполняемой программы. Если процедура вызывается из тела TRY-блока, привилегия действует в пределах тела TRY-блока. Иначе привилегия действует до завершения программного комплекса. Особый случай - обработчики событий, настраивающие режим видеопроцесса; в зоне с интерактивным редактированием, в (транзитивно) подчиненных зонах и (транзитивно) зависимых окнах, а также во всех справочных к ним окнах, интерактивный пользователь получит ту же привилегию. Обработчики событий OnBeforeEdit и OnBeforeInsert вызываются уже после начала процесса интерактивного редактирования; для входа в редактирование пользователь должен иметь соответствующие права. Обработчик OnSetSubwindow работает до начала интерактивного редактирования, т.е. может назначить привилегию стартующему процессу.

Второй вариант процедуры (с параметрами) пополняет перечень привилегированных программ, хранящийся на сервере ASB. Перечень состоит из пар (ASLName + ModeOrProcPattern), относится к текущему ASB-подключению, и уничтожается в момент закрытия подключения. Привилегия распространяется на программные комплексы, запущенные опциями RunProg, CALL и CallBP, а также на обработчики программных событий, но не распространяется на NTF- и DBS-программные комплексы. Привилегия присваивается программному комплексу в момент старта, т.е. не распространяется на программный комплекс, вызвавший данную процедуру. Процедура нетранзакционна. Пара (ASLName + ModeOrProcPattern) моментально попадает в перечень привилегированных программ, а откаты транзакций на содержимое перечня не влияют.

Ниже перечислены некоторые особенности поведения процедуры.

Пример

GRANT_ALL_RIGHTS("RWayS", "05?");