SQL 防止从表中选择

Bat*_*ich 0 sql oracle database-trigger

有没有办法防止从表中选择,比如在 9 到 5 之间允许选择,否则不返回任何内容?

触发器用于 DML、DDL、数据库操作。

用程序来做,并检查时间/其他条件是否正确?

或者有没有更简单的方法来防止选择?

a_h*_*ame 9

您可以创建一个视图,只授予该视图的 SELECT 权限并撤销对基础表的任何权限。

如果当前时间不允许,则视图可以包含一个 WHERE 条件,该条件仅返回 false:

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