我是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;