Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103121810
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Sybase

2008-04-11 12:54:17

  来源:赛迪网    作者:Sybase

视图和过程可访问由不同用户拥有的基础对象。例如,如果 usera、userb、 userc 和 userd 是四个不同的用户,而 userd.viewd 可能基于userc.viewc, userc.viewc 可能基于 userb.viewb, userb.viewb 可能基于usera.table。对于过程,也与此相似:userd.procd 可能会调用userb.procb.procc, userc.procc 可能会调用 userb.procb, userb.procb 可能会插入 usera.tablea。

下列 " 任意访问控制 "(DAC) 规则适用于嵌套视图和表:

·要创建视图,用户必须对视图中的所有基本对象 (例如,表和视图)具有 SELECT 权限。

·要访问视图,必须用 GRANT OPTION (授权选项)向视图所有者授予对基表或视图的适当权限,还必须向视图的用户授予对视图的适当权限。

·用 WHERE 子句更新需要同时具有 SELECT 和 UPDATE 权限。

·如果用户拥有视图定义中的表,则用户可以通过某个视图来访问这些表,即使用户不是该视图的所有者并且尚未被授予对该视图的访问权限,也可以这样做。

下列 DAC 规则适用于嵌套过程:

·用户无需对基础对象 (例如,表、视图或过程)具有任何权限即可创建过程。

·要执行一个过程,过程的所有者需要对该过程所引用的对象具有适当的权限。

·即使某个用户拥有某个过程引用的所有表,除非该用户已被授予对该过程的 EXECUTE 权限,否则该用户将无法执行该过程以访问这些表。

阅读(414) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~