`

建立视图时引用其他用户下的表出错

阅读更多

以用户user1登录,在自己的模式下建立视图v1,引用user2下的表t1: create view v1 as select * from user2.t1;
   提示错误:表或视图不存在。
   单独执行 select * from user2.t1; 可以查询出结果,说明该表存在且有权限访问。
   user1具有connect、resource、dba的权限。

 

user1能够 select * from user2.t1 是因为它有select from any table 的system privilege。 而
要create view as select from user2.t1 则看来是需要有object privilege. 这个就是能用user2来
grant select on t1 to user1才能做到。 然后create view就可以成功。

 

select any table 的权限不就包括了select on user2.t1吗?
user1的select any table权限是通过dba角色授予的,我知道通过角色授予的权限在存储过程中无效,是不是在创建视图时也无效呢?

 

"是不是在创建视图时也无效呢"
是的!
你可以看SQL REFERENCE之CREATE VIEW
The owner of the schema containing the view must have the privileges necessary to
either select, insert, update, or delete rows from all the tables or views on which the
view is based. The owner must be granted these privileges directly, rather than
through a role.

分享到:
评论

相关推荐

    基于SQL Server视图的数据库安全模型的研究.pdf

    创建视图并不会明显增加数据库的存储量。 基于视图的数据库安全模型主要涉及用户登录、权限和视图访问。用户登录时,数据库会执行验证等安全机制,这里不再详述。重点在于视图本身的访问权限控制。视图可以作为保护...

    Android技术知识点:如何使用视图绑定来消除findViewById()

    4. **易于测试**:绑定类提供了直接的视图引用,使得单元测试变得更加简单。 总的来说,视图绑定是Android开发中一种值得推广的实践,它提升了开发效率,减少了出错的可能性,并且让代码更加整洁。在实际开发中,...

    ViewPager 代码出错

    ViewPager是Android平台中一个强大的视图滑动控件,它允许用户在多个页面间进行平滑的左右滑动。在Android应用开发中,ViewPager经常用于实现类似Tab切换或者轮播图的效果。然而,在实际开发过程中,开发者可能会...

    Informix出错信息中文对照

    如果尝试创建一个已经存在的对象(如表、视图等),则会报此错误。 #### 4GL 错误代码 4GL(Fourth Generation Language)是一种高级语言,用于简化应用程序的开发。Informix支持一种特定的4GL,以下是一些常见的4...

    powerDesigner使用方法

    通过使用 PowerDesigner,你可以轻松地设计数据库模式,包括表、关系、视图和触发器,并自动生成 SQL 脚本来创建实际的数据库。 **数据库模式与设计** 数据库的结构,也被称为数据库模式,由一系列元素构成,如表...

    自定义tab用户控件

    自定义Tab控件通常用于创建多面板界面,让用户可以在不同的视图或数据集之间切换,而无需关闭或打开新的窗口。这样的控件在Windows Forms或.NET框架的应用程序中非常常见,它们可以替代系统默认的TabControl控件,...

    批量更改数据库表的所有者

    - U (用户表) - V (视图) - P (存储过程) - F (函数) #### 知识点三:`sp_MSforeachtable`存储过程 `sp_MSforeachtable`是一个非文档化的存储过程,主要用于遍历数据库中的所有表,并对每张表执行相同的SQL...

    调用公共方法ViewHolder和Adapter

    例如,如果在某个item中使用了CheckBox或其他可交互的视图,而未正确处理选中状态,那么在滑动时,这些状态可能会被错误地传递给其他item。为了解决这个问题,我们需要确保在绑定数据时,只更新与当前数据相关的视图...

    mysql第五章笔记.doc

    创建视图使用`CREATE VIEW`语句,删除视图则用`DROP VIEW`,查询视图就像查询普通表一样。需要注意的是,视图可以嵌套,但如果视图涉及多张表,通常只能用于查询操作。 最后,我们探讨索引。索引是数据库快速定位...

    U8开发之UAP表单

    UAP表单的定制化程度非常高,不仅可以定义多子表和多布局视图的单据,还支持创建复杂的档案类型,如列表档案、树型编辑档案(如部门档案)以及树形导航档案(如人员档案)。这些档案类型能够满足各种业务需求,如...

    Itrenzheng IBM DB2 000-730认证题库

    为了创建视图,创建者需要拥有对基础表的 SELECT 权限。因此,最低权限为 SELECT 权限 on TABLE1。 ##### 6. 允许 BOB 撤销用户对数据库访问权的 SQL 语句 **题目:** 哪条 SQL 语句允许 BOB 撤销用户 TOM 对 ...

    IOS 使用XIB 自定义View

    现在,你可以在其他UIViewController或Storyboard中使用这个自定义视图。通过实例化`CustomView`类,或者在Storyboard中选择`CustomView`作为View的Class,然后配置所需的属性。 **注意事项** 1. 在XIB文件中,确保...

    发布元数据报错 NC错误处理

    向导生产的代码要补充实体属性进去,缺少了实体属性和一个类,解决方案是在MDP视图下,选中实体,在属性下把动态属性的勾去掉,然后再重新发布元数据,生成Java源代码。 四、单据向导建立过程中出现错误 单据向导...

    Mysql错误编码大全.pdf

    5. 1023, 1024, 1025, 1026, 1027: 涉及到文件的读写和关闭操作,如关闭时出错、读取文件时出错、写入文件时出错等,可能是文件损坏或者磁盘I/O问题。 6. 1028, 1029: 分类失败和视图不存在,可能是因为SQL语句中的...

    BaseRecyclerViewAdapter

    ViewHolder持有视图引用,避免了频繁查找视图操作,使得列表滑动更加流畅。 4. **事件监听**:它通常会提供方便的方法来注册和处理点击事件,如onClick、onLongClick等,减少了对匿名内部类的依赖,让代码结构更...

    vs2008 控件无法拖入?或出错?

    在遇到Visual Studio 2008(以下简称VS2008)中控件无法拖拽进入设计界面或者出现错误的情况时,我们首先需要确保已经排除了其他常见的问题,例如环境配置错误、项目设置不当等。接下来,我们将深入探讨可能导致此类...

    ViewBinding+DataBinding+MVVM.zip

    通过表达式语言,我们可以实现双向数据绑定,当数据模型改变时,视图自动更新;反之亦然。这样,开发者可以更专注于业务逻辑,而不是UI和数据之间的同步问题。 最后,我们讨论的是**MVVM(Model-View-ViewModel)**...

    论SQL Server中数据完整性实现.pdf

    这种方式简单且不易出错,能实现实体完整性、参照完整性以及部分的域完整性和用户定义完整性。 过程型数据完整性则涉及更复杂的操作,如默认值、规则、触发器、视图和存储过程。默认值约束允许为列设置默认值,适用...

    RecyView刷新加载

    当用户从顶部向下滑动时,它会显示一个刷新指示器,触发下拉刷新事件。`SwipeRefreshLayout`通过监听滑动手势,实现与用户交互,完成数据的刷新。开发者可以通过设置`onRefreshListener`来处理刷新逻辑。 结合这两...

Global site tag (gtag.js) - Google Analytics