用户看不到视图,只能看到表
User cannot see view, only sees tables
这些是用户在 netezza 数据库上的对象权限。它说 (S)elect,但用户看不到视图,只能看到表。这是为什么?
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
LIST 权限允许您查看对象,TABLE 与 VIEW 是不同的对象 class。
如果您希望用户看到一个视图,那么您必须在该视图(或 VIEW 的一般对象 class)上授予 LIST。在 table(或 TABLE 的对象 class)上被授予 LIST 或 SELECT 与用户是否可以看到 VIEW 无关。
如果您有两个名为 VIEW_1 和 VIEW_2 的视图,您可以执行以下操作:
GRANT LIST, SELECT on VIEW_1, VIEW_2 to USER1234
或者如果您希望他们对您授予 VIEW 的数据库范围内的所有视图具有这些权限,VIEW 是对所有视图的对象 class 的引用。
GRANT LIST, SELECT on VIEW to USER1234
同样,您可以授予 TABLE(表示 table 对象 class),这将适用于范围内的所有 table。
这些是用户在 netezza 数据库上的对象权限。它说 (S)elect,但用户看不到视图,只能看到表。这是为什么?
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
LIST 权限允许您查看对象,TABLE 与 VIEW 是不同的对象 class。
如果您希望用户看到一个视图,那么您必须在该视图(或 VIEW 的一般对象 class)上授予 LIST。在 table(或 TABLE 的对象 class)上被授予 LIST 或 SELECT 与用户是否可以看到 VIEW 无关。
如果您有两个名为 VIEW_1 和 VIEW_2 的视图,您可以执行以下操作:
GRANT LIST, SELECT on VIEW_1, VIEW_2 to USER1234
或者如果您希望他们对您授予 VIEW 的数据库范围内的所有视图具有这些权限,VIEW 是对所有视图的对象 class 的引用。
GRANT LIST, SELECT on VIEW to USER1234
同样,您可以授予 TABLE(表示 table 对象 class),这将适用于范围内的所有 table。