sql - SQL 阻止从表中选择
问题描述
有没有办法防止从表中选择,比如在 9 到 5 之间允许选择,否则不返回任何内容?
触发器用于 DML、DDL、数据库操作。
用程序来做,检查时间/其他条件是否正确?
还是有更简单的方法来防止选择?
解决方案
您可以创建一个视图并仅授予该视图的 SELECT 特权,并撤销对基础表的任何特权。
如果当前时间不允许,则视图可以包含一个 WHERE 条件,该条件仅返回 false:
create view ..
as
select ...
from ...
where to_char(sysdate, 'hh24:mi') >= '09:00'
and to_char(sysdate, 'hh24:mi') < '17:00'
推荐阅读
- python - 如何修复此代码以计算 Python 中的正确成本?
- java - 创建多个 Bean 时出错:是否存在无法解析的循环引用?
- docker - 使用 AWS ECR 设置 Docker 身份验证令牌的问题
- .net-core - 如何在 Windows 上的 .Net Core 中获取原始案例的实际文件路径(显然)?
- java - 使用 Spring Cloud Streaming,如何将消息同步发送到 binder?
- c++ - C++ 何时返回指针
- java - 如何使用 jsoup 在 android studio 上抓取图像
- c - 如何在 vscode 上运行 C 代码来解决这个问题?
- python - Pygame - 单击时删除绘图
- reactjs - Cytoscape.js 不会在 React 中运行 cos-bilken 布局