用户是否需要SELECT /INSERT/DELETE/UPDATE
在视图和基础表上同时具有etc等特权才能执行这些操作?还是在EITHER表/视图上的特权就足够了?
换句话说,考虑拥有表T和视图V(由T构造)的用户A。如果用户BSELECT
在VSELECT
上不SELECT
正确,可以在V上正确的用户B执行a ,反之亦然吗?如果他可以,这是否意味着View特权“替代”了表特权,因为A并未赋予他T的权利?
更新
在一个相关的问题中,同义词如何?根据我在书中所了解的,用户同时需要SELECT
同义词和基础表的特权。这将与视图不同。
另一方面,Oracle似乎表明同义词的行为类似于视图。
可以授予用户同义词或视图的SELECT特权,而无需显式授予原始表的SELECT特权
更新2
遵循每个人的回答,我们只需要视图特权即可选择表(至少视图从表中看到的内容),并且不需要表特权,让我们考虑以下情况:
- 表T属于A
- 从T到B的GRANT SELECT(无GRANT OPTION)
- B创建视图V通过SELECT * FROM AT
- B授予V至C的选择
- C执行SELECT * FROM BV
根据您所说的,C可以从V中进行选择,因此等同于从T中进行选择。尽管C在T上没有权利,而B没有GRANT OPTION,但B有效地让C看到了AT。某处有安全孔吗?
视图的基本用途之一是保护隐私。基本表可能包含某些用户不需要查看的机密信息(例如,在雇员表中,您可能有薪水)。一些用户只需要查询(选择)或更新基表中的某些字段,而无需访问全部信息。例如:选择电话号码或更新地址(但无权查看薪水或奖金)。然后,将创建一个视图,并仅在视图而不是基表上为这些用户赋予“选择”和“更新”特权。(选择仍然与基本表相反,但是COLUMNS将限于视图中包含的那些……可以/将对基本表进行更新,但是同样,仅针对视图中包含的列中的值进行更新。 )该视图不仅可以限制列,
因此,视图的主要用途之一正是基于此:一些用户可能对视图具有特权,但对基表没有特权。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句