Изменение графика работы пользователя
Спецификация
< изменение графика работы пользователя >::=
< график по дням >::=
< время начала работы >::=
'HH:MM'
< время окончания работы >::=
'HH:MM'
< дни работы >::=
< день недели >::=
'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN'
< дата начала >::=
'DD.MM.YYYY'
< дата окончания >::=
'DD.MM.YYYY'
Синтаксические правила
  1. < График по времени > задается по Гринвичу и округляется в меньшую сторону до ближайшего получасового интервала.

  2. Значение '00:00', заданное в качестве конца диапазона времени, рассматривается как окончание суток.

Общие правила
  1. Конструкция ENABLE LOGIN разрешает, DISABLE LOGIN запрещает пользователю доступ к БД в указанные периоды времени.

  2. Опция ALWAYS устанавливает (ENABLE LOGIN) или запрещает (DISABLE LOGIN) ежедневный круглосуточный период доступа к БД в течение всего времени её существования (при создании пользователя задаётся ENABLE LOGIN ALWAYS).

  3. Если опция FROM < время начала работы > не задана, по умолчанию используется начало суток.

  4. Если опция TO < время окончания работы > не задана, по умолчанию используется конец суток.

  5. Если опция FOR < дни работы > не задана, по умолчанию используется все дни недели.

Примеры
1)
alter user GUEST enable login for 'MON','WED','SUN' since '16.06.2010' until '20.06.2010' from '12:50' to '16:45';

2) Установка доступности к БД сотрудника GUEST на время испытательного срока c 01.04.2018 по 01.06.2018
alter user GUEST enable login since '01.04.2018';
alter user GUEST enable login until '01.06.2018';

Посмотреть период и длительность испытательного срока
select rowid from $$$usr where $$$s34='GUEST';
44

select cast getraw($$$s35,88,16) as date, cast getraw($$$s35,104,16) as date 
  from $$$usr where rowid=44;

01.04.2018:00:00:00 01.06.2018:00:00:00
3) Посмотреть маску запрещенных для доступа дней недели
alter user U1 disable login for 'SAT','SUN';
Битовая маска
select 'Доступ запрещен: ' ||
       (case when (GetByte($$$S35,120) & 0x1) = 0 then '0' else '1' end) ||
       (case when (GetByte($$$S35,120) & 0x2) = 0 then '0' else '1' end) ||
       (case when (GetByte($$$S35,120) & 0x4) = 0 then '0' else '1' end) ||
       (case when (GetByte($$$S35,120) & 0x8) = 0 then '0' else '1' end) ||
       (case when (GetByte($$$S35,120) & 0x10) = 0 then '0' else '1' end) ||
       (case when (GetByte($$$S35,120) & 0x20) = 0 then '0' else '1' end) ||
       (case when (GetByte($$$S35,120) & 0x40) = 0 then '0' else '1' end)
  from LINTER_SYSTEM_USER.$$$USR
 where $$$S32=0 and $$$S34 like 'GUEST';
Доступ запрещен: 0000011

4) Посмотреть ограничение доступа к БД по дням недели
create or replace user guest identified by '12345678';

alter user GUEST DISABLE LOGIN FROM '01:45' TO '02:15' for 'MON', 'FRI';

select
  case d when 0 then 'MON' when 1 then 'TUE' when 2 then 'WED' when 3 then 'THU' when 4 then 'FRI' when 5 then 'SAT' when 6 then 'SUN' end, /* день */
  to_char(cast (cast (to_date ('30', 'MI') as decimal) * sh as date), 'HH:MI') /* время начала */ || '-' ||
  to_char(to_date('00:30', 'HH:MI') + cast (cast (to_date ('30', 'MI') as decimal) * sh as date), 'HH:MI') /* время окончания */
from
  (select level-1 d from $$$usr start with rowid=1 connect by level <  7), /* дни */
  (select level-1 sh from $$$usr start with rowid=1 connect by level <  48), /* получасовые промежутки */
  LINTER_SYSTEM_USER.$$$USR
where
  $$$S32=0 and $$$S34 like 'GUEST' and
  ((GetByte($$$S35,18+d*6+sh/8) & cast (power(2,mod(sh,8)) as int)) <  > 0);

MON 01:30-02:00
FRI 01:30-02:00