Доброго времени суток! я выполняю задание по администрированию БД Oracle, преподаватель сказал создать несколько ролей (Кладовщик, Админ и заказчик)
create role kladovshchik;
create role zakazchik;
create role admin_role;
и дать некоторые привилегии этим ролям. Проблемное для меня задание такое: Дать право админу заходить в БД только по будням. Я создал триггер для этого, с таким кодом:
CREATE OR REPLACE TRIGGER vhod_tolko_po_budnjam AFTER LOGON ON DATABASE DECLARE
current_day NUMBER;
user_role NUMBER;
BEGIN
SELECT DISTINCT
COUNT(*)
INTO user_role
FROM
user_role_privs
WHERE
granted_role = 'admin_role'; --Проверяем роль
SELECT
to_char(sysdate, 'D')
INTO current_day
FROM
dual; --получаем день недели
IF
( current_day > 5 )
AND ( user_role >= 1 )
THEN --если вошел после пятницы и роль админ
raise_application_error(-20000, 'Приходите в будни!');
END IF;
END;
создал этот триггер я под пользователем Sergey (ну под которым я все лабы выполняю), и для других пользователей он не срабатывает, а как сделать так чтобы триггер срабатывал для определенной роли я не знаю, а назначить как процедуру его насколько я знаю нельзя....