[MSSQL]with check option和with grant option

·with check option

表示对视图进行update、insert、delete操作时,只要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)
SQL语言用CREATE VIEW 命令创建视图,其一般格式如下。
CREATE VIEW<试图名> [(<列名>[,<列名>]…)]
AS <子查询> [WITH CHECK OPTION];
eg.已知关系模式:图书(图书编号,图书类型、图书名称、作者,出版社,出版日期,ISBN),图书编号唯一标识一本图书。建立“计算机”类图书的视图Computer-BOOK,并要求进行修改插入操作时保证该视图只有计算机类图书。实现上述要求的SQL语句如下:

CREATE VIEW Computer-BOOK
AS SELECT 图书编号,图书名称,作者,出版社,出版日期
FROM 图书
WHERE 图书类型=“计算机”
WITH CHECK OPTION;
解析:使用语句CREATE VIEW Computer-BOOK创建一个“计算机”类图书的视图,使用语句WITH CHECK OPTION满足“进行修改、插入操作时保证该视图只有计算机类的图书”(即子查询中的条件表达式WHERE 图书类型=“计算机”)

小结:
对于update,有with check option,要保证update后,数据要被视图查询出来
对于delete,有无with check option都一样
对于insert,有with check option,要保证insert后,数据要被视图查询出来
对于没有where子句的视图,使用with check option是多余的。
·with grant option
with grant option的意思是:权限赋予/取消是级联的,如将with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如grant select on table with grant option to A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。

阅读更多

扫码向博主提问

厦门德仔

博客专家

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • ERP
  • .NET
  • SQL
  • Ext.Net
  • DevExpress
去开通我的Chat快问

没有更多推荐了,返回首页