1、以sa 登录,建一个简单的表a,定义了a的主键,又在该表基础上选择了所有字段,建一视图v
2、现象:
  1> 如果没有赋予用户zhang对表a的任何权限;赋予用户zhang对视图v的选择、更新、删除的权限,那么,以用户zhang登录后,视图v能打开,但是却没有修改、删除或者添加的权限  2> 如果赋予用户zhang对表a的选择、修改和删除权限后,视图v才可以进行修改和删除问题:
   难道如果表a中没有显示地授权,即使在视图v中有显示授权也不行吗?如果真是这样,在第一种现象里,为什么在没有给表a授权select,视图v却还是能打开查看记录呢?

解决方案 »

  1.   

    问题:
       难道如果表a中没有显示地授权,即使在视图v中有显示授权也不行吗?如果真是这样,在第一种现象里,为什么在没有给表a授权select,视图v却还是能打开查看记录呢?
    ---------------------------------------------------------------------------------
    你有没有注意到你的数据库的用户中,会有一个Guest用户,如果该用户存在的话,每一个未授权的登录用户,也是可以看到这个数据库的,默认都会继承Guest用户的权限。
    你可以删除Guest用户以确保安全。上面的你的SELECT权限,应该是从GUEST中继承来的。
      

  2.   

    MM,你是哪的啊,以后我们一起讨论啊PS:我不是大哥,我是小哥哥
      

  3.   

    重新修改一遍问题:1、以sa 登录,建一个简单的表a,定义了a的主键,又在该表基础上选择了所有字段,建一视图v
    2、现象:
      1> 如果没有授予用户zhang对表a的任何权限;授予用户zhang对视图v的select、update、delete的权限,那么,以用户zhang登录后,视图v能打开(有select权限),但是却没有update、delete的权限  2> 如果授予用户zhang对表a的select、update、delete权限后,视图v才可以进行修改和删除问题:
       1>难道如果表a中没有显式地授权,即使在视图v中有显式授权也不行吗?我不想对表a显式授权,因为不想让用户zhang看到表a.
       2>如果真是这样,在第一种现象里,为什么在没有给表a授权select,视图v却还是能打开查看记录呢?
       3> 联机丛书中有下面一段话,又如何理解呢?  “使用视图作为安全机制 --通过限制可由用户使用的数据,可以将视图作为安全机制。用户可以访问某些数据,进行查询和修改,但是表或数据库的其余部分是不可见的,也不能进行访问。”
      

  4.   

    我对guest和public都作了权限设定,与guest没有关系
      

  5.   

    捉摸了2天,终于弄明白了,原来需要在视图的设计属性里选择"用视图规则进行更新"这一选项,现在一切好了(我前台用adp做的),谢谢大家的光临