在Oracle中,我有以下情况但面临授权问题。
架构A: 有3个表:TA1,TA2,TA3
架构B: 是否在连接表TA1,TA2和TA3
时查看“VB”用户C: 在VB上有SELECT授权
问题: SELECT授权在视图'VB'上提供给C,但不能从'C'访问它。 我也试过在TA1,TA2和TA3上向C授予SELECT访问权限,但它没有用。
请建议。
答案 0 :(得分:1)
您需要使用WITH GRANT
选项
作为schema_a
,授予对基础表的访问权限,并选择将该授权提供给另一个模式
GRANT select ON ta1 TO schema_b WITH GRANT OPTION;
GRANT select ON ta2 TO schema_b WITH GRANT OPTION;
GRANT select ON ta3 TO schema_b WITH GRANT OPTION;
作为schema_b
,您现在可以使用这些表格向schema_c
GRANT select ON vb TO schema_c;
作为schema_c
,您可以直接从vb而不是基础表中进行选择。
SELECT * from schema_b.vb;
无需将表格上的select直接授予schema_c