Oracle安全策略

时间:2011-10-09 09:09:10

标签: oracle oracle11g

如何创建一个限制用户只能看到薪水为1,500或以下的员工的FUNCTION?举个例子:如果我输入

SQL> SELECT * FROM employee;

EMPNUMB EMPNAME STARTDATE ENDDATE  SALARY  EMPCITY   DESCRIPTION
---------------------------------------------------------------------------
01      Jason Martin 25-JUL-96 25-JUL-06 1234.56 Geelong   Programmer
08      James Cat 17-SEP-96 15-APR-02 1232.78 Melbourne Tester

1 个答案:

答案 0 :(得分:2)

你不想要一个功能,你想要一个视图:

create view employee_view as
select * from employee where salary <= 1500;

然后只授予用户访问视图的权限,而不是表。如有必要,您可以重命名,以便视图被称为employee,基表称为employee_table或其他。

或者,注意问题的标题,您可以查看Virtual Private Database (VPD)又名“细粒度访问控制”。但这听起来有点像你所说的要求,并且仅在企业版中可用。