我需要在Teradata VIEWS中创建另一个数据库中的表。 我已经创建了两者,但是现在选择了VIEW时,它显示了以下错误:“未找到表/视图'MyDatabase.MyView',或者您没有访问权限” 。 >
用户,视图,表,数据库...需要哪种类型的权限才能起作用?而且我什么时候应该给他们?
谢谢!
答案 0 :(得分:0)
假设我们有 SomeDB.TableOrViewA 和一个引用 SomeDB.TableOrViewA 的视图 MyViews.ViewX 。仅当 MyViews 拥有相应权利WITH GRANT OPTION
时,“视图所有者” MyViews 才可以提供访问权限(通过 ViewX )。>
为了使 UserN (不是 MyViews.ViewX 的创建者)从视图进入SELECT
,不仅 UserN 对 MyViews.ViewX (或整个 MyViews 数据库)拥有SELECT
权限,但对 MyViews 数据库还必须对 SomeDB.TableOrViewA 或整个 SomeDB 数据库具有SELECT WITH GRANT OPTION
权限。无论 UserN 是否对基础 SomeDB.TableOrViewA 本身具有SELECT
权限,都是如此。
GRANT SELECT ON SomeDB.TableOrViewA TO MyViews WITH GRANT OPTION;
或GRANT SELECT ON SomeDB TO MyViews WITH GRANT OPTION;