Доступные версии документации
Изменение графика работы пользователя
Спецификация
<изменение графика работы пользователя>::=
<график по дням>::=
<время начала работы>::=
'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;

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
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter