如何实现在限定的时间内允许访问视图?

zcs_1 2009-04-13 08:22:27
今天从Oracle介绍VPD的白皮书上看到一种说法,翻译过来是这样的:

视图可根据上下文限制对数据的访问,例如,设想你的公司策略是员工只能在正常的工作时间查看员工的工资信息。你可以创建一个视图,并对这个视图增加限制使其只能在上午9:00到下午5:00访问。

请问如何实现,谢谢?
...全文
176 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sleepzzzzz 2009-04-13
  • 打赏
  • 举报
回复
应该可以的吧。
在创建设置上下文的包里进行控制,判断当前时间,如果不在指定的时间段内,raise一个异常,我没试过,呵呵。
zcs_1 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ckc 的回复:]
产生视图的时候加个where条件啊
where to_char(sysdate,'hh24')>=9 and to_char(sysdate,'hh24') <=17
这样时间不对就返回空集
[/Quote]

绝对正解,3楼的也正确,非常感谢两位高手!
superhsj 2009-04-13
  • 打赏
  • 举报
回复
厉害厉害,开始还以为上面理解错了呢,仔细研究才发现是我没理解上去
白发程序猿 2009-04-13
  • 打赏
  • 举报
回复
我搜了半天,没看到
返回一看,居然能这样实现
高手真是多啊
wffffc 2009-04-13
  • 打赏
  • 举报
回复
SQL> select * from emp where sysdate between sysdate-0.1 and sysdate+0.1;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10

已选择14行。

SQL> select * from emp where sysdate between sysdate+0.1 and sysdate+0.2;
ckc 2009-04-13
  • 打赏
  • 举报
回复
产生视图的时候加个where条件啊
where to_char(sysdate,'hh24')>=9 and to_char(sysdate,'hh24')<=17
这样时间不对就返回空集
willflyz 2009-04-13
  • 打赏
  • 举报
回复
真的吗?是不是新版本的才有,关注一下!

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧