SQL запретить выбор из таблицы - PullRequest
0 голосов
/ 14 июля 2020

Есть ли способ запретить выбор из таблицы, скажем, от 9 до 5, разрешить выбор, иначе ничего не вернуть?

Триггеры предназначены для DML, DDL, операций с базой данных.

Правильно ли делать это с помощью процедуры и проверять время / другие условия?

Или есть более простой способ предотвратить выбор?

1 Ответ

9 голосов
/ 14 июля 2020

Вы можете создать представление и предоставить только привилегию SELECT для представления и отозвать любые привилегии для базовых таблиц.

Затем представление может включать условие WHERE, которое просто возвращает false, если текущее время не равно разрешено:

create view .. 
as
select ...
from ...
where to_char(sysdate, 'hh24:mi') >= '09:00' 
  and to_char(sysdate, 'hh24:mi') <  '17:00'
...