在SQL Server 2005中,可以授予视图的一些权限 - 我不明白这个概念。
SELECT
和REFERENCE
权利显而易见,但我对INSERT
,DELETE
,UPDATE
感到困惑。我确信他们在那里是有原因的,但我没有看到它。
也许这些权利会传播到视图引用的表中?
答案 0 :(得分:1)
尽管有名称,但SQL Server中的视图可以更新。释义the documentation(“可更新视图”部分“)
只要满足以下条件,您就可以通过视图修改基础基表的数据:
任何修改,包括UPDATE,INSERT和DELETE语句,
必须仅从一个基表引用列。视图中要修改的列必须直接引用表列中的基础数据。列不能是
以任何其他方式衍生,例如通过以下方式:聚合函数:AVG,COUNT,SUM,MIN,MAX,GROUPING,STDEV,STDEVP,VAR和VARP。
计算。无法从使用其他列的表达式计算列。使用
形成的列 集合运算符UNION,UNION ALL,CROSSJOIN,EXCEPT和INTERSECT
相当于计算,也不可更新。正在修改的列不受GROUP BY,HAVING或DISTINCT子句的影响。
TOP不会在视图的select_statement中的任何位置与WITH CHECK OPTION子句一起使用。
此外,您可以在绕过这些限制的视图上使用require('es6-promise').polyfill();
var SearchActions = require('./search_actions.js')
var search_actions = new SearchActions()
//console.log(search_actions.receive_results)
export search_actions.receive_results
触发器。
TL; DR - 您可以在许多场景中对视图执行DML。鉴于这一点,拥有管理谁可以执行这些操作的许可是有道理的。