Создание ВИДА, ОГРАНИЧИВАЮЩЕГО доступ пользователя к определенным часам - PullRequest
1 голос
/ 20 марта 2012

Я пытаюсь выполнить следующий запрос "Создать представление, которое ограничивает доступ сотрудников персонала к таблице заказов рабочим временем с 9:00 до 18:00. Предоставьте соответствующие разрешения пользователям персонала."

Однако я изо всех сил пытаюсь доказать следующее:

   CREATE VIEW STAFF_RESTRICTORDERVIEW AS
   SELECT TO_CHAR (SYSDATE, 'DD-MM-YYYY HH24:MI:SS'), ORDERNUMBER, CUSTOMERNUMBER, DATEORDERPLACED, DELIVERYINSTRUCTION, SCHEDULEID, 
   FROM ORDERS
   WHERE STAFF_RESTRICTORDERVIEW (SYSDATE, 'DD-MM-YYYY HH24:MI:SS') NOT BETWEEN
   (SYSDATE, 'DD-MM-YYYY 09:00:00') AND (SYSDATE, 'DD-MM-YYYY 18:00:00')

Если бы этот код работал выше, я мог бы добавить следующее:

  GRANT SELECT on STAFF_RESTRICTORDERVIEW TO 'STAFF_USER'

Любая помощь будет оценена, спасибо заранее:).

1 Ответ

3 голосов
/ 20 марта 2012

Попробуйте это:

CREATE VIEW STAFF_RESTRICTORDERVIEW (
    current_sys_date, 
    ordernumber, 
    customernumber, 
    dateorderplaced,
    deliveryinstruction, 
    scheduleid
) AS
SELECT 
    sysdate, 
    ORDERNUMBER, 
    CUSTOMERNUMBER, 
    DATEORDERPLACED, 
    DELIVERYINSTRUCTION, 
    SCHEDULEID
 FROM ORDERS
 WHERE SYSDATE NOT BETWEEN trunc(sysdate) + 9/24 and trunc(sysdate) + 18/24

Я полагаю, что это вернет пустой набор записей, если вы запустите его между 9:00 и 18:00. Если вы хотите наоборот, чтобы получать записи только между этими часами, то удалите NOT из последней строки.

...