User1授予对用户2的表(具有索引,例如TableIndex)的选择,删除权限。
我可以看到user2无法看到该表上存在的索引。
User2运行此SQL:
select DBMS_METADATA.GET_DDL('INDEX','TableIndex') from DUAL;
Result is: The specified object was not found in the database.
当User2在表上执行Select SQL Queries时,我希望使用Index,而不需要任何进一步的授权(如果索引不可见)?
答案 0 :(得分:0)
要使用dbms_metadata.get_ddl
,您需要{user}授予select_catalog_role
(see here)。但即使你看不到它,也会使用该指数(如果适用/可能)。
答案 1 :(得分:0)
没有“索引许可”这样的东西。
我们授予对表的权限,因为我们可以对它们运行DML - 选择,更新,删除等。但是我们不对索引执行这样的操作,因此没有什么可以授予。
USER2无法看到DDL在User1表上创建索引的事实是非常正确的。这不关他们的事。 User2从表中进行选择,该查询将使用User1创建的任何适当的索引。