授予权限更新以及Oracle中的限制

时间:2014-11-19 08:06:55

标签: sql grant oracle12c

我是Oracle新手。我的数据库有两个表员工和部门。

Employee(Empid, Name, Designation, Date_Joined, Salary, Qualification, Dcode)
Department (Dcode, Dname, Location)

我需要在Employee表的列工资上向用户c ## Amila授予权限更新。他不应该更新超过50000的工资,他不应该插入超过50000的价值。我可以授予特权

GRANT UPDATE("salary") ON "Employee" TO c##Amila; 

但是有没有办法在这个补助金上添加上述限制?

1 个答案:

答案 0 :(得分:1)

我从未在Oracle中听说过这样的权限,但在您的情况下,您可以使用CHECK选项创建可更新的视图:

create view EmployeeV as select * from Employee 
where salary <= 50000 with check option;

并在此视图中授予您所需的内容:

GRANT UPDATE(salary) ON EmployeeV TO c##Amila; 
GRANT INSERT ON EmployeeV TO c##Amila;