用户无法查看视图,只能看到表格

时间:2015-10-28 14:47:08

标签: privileges database-administration netezza

这些是netezza数据库上用户的对象权限。它说(S)选,但用户看不到视图,只能看表。那是为什么?

Object Privileges
    (L)ist (S)elect (I)nsert (U)pdate (D)elete (T)runcate (L)ock
    (A)lter (D)rop a(B)ort (L)oad (G)enstats Gr(O)om (E)xecute
    Label-A(C)cess Label-(R)estrict Label-E(X)pand Execute-(A)s
Administration Privilege
    (D)atabase (G)roup (U)ser (S)chema (T)able T(E)mp E(X)ternal
    Se(Q)uence S(Y)nonym (V)iew (M)aterialized View (I)ndex (B)ackup
    (R)estore va(C)uum (S)ystem (H)ardware (F)unction (A)ggregate
    (L)ibrary (P)rocedure U(N)fence (S)ecurity Scheduler (R)ule

1 个答案:

答案 0 :(得分:0)

LIST权限允许您查看对象,而TABLE是与VIEW不同的对象类。

如果您希望用户查看视图,则必须在该视图(或VIEW的常规对象类)上授予LIST。在表(或TABLE的对象类)上被授予LIST或SELECT与用户是否可以看到VIEW无关。

如果您有两个名为VIEW_1和VIEW_2的视图,您可以执行以下操作:

GRANT LIST, SELECT on VIEW_1, VIEW_2 to USER1234

或者如果您希望它们对数据库范围内的所有视图具有这些权限,则授予VIEW,这是对所有视图的对象类的引用。

GRANT LIST, SELECT on VIEW to USER1234

类似地,您可以授予TABLE(表示表对象类),这将适用于范围中的所有表。