在 Oracle 中授予具有限制的权限更新



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

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

我需要向用户 c##Amila 授予对员工表的列工资的权限更新。而且他不应该更新超过50000的薪水,他不应该插入超过50000的值。我可以授予特权

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

但是有没有办法在这笔赠款中添加上述限制?

我从未听说过 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; 

最新更新