向其他用户授予表和索引权限

时间:2013-02-26 10:04:46

标签: sql database oracle indexing grant

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,而不需要任何进一步的授权(如果索引不可见)?

2 个答案:

答案 0 :(得分:0)

要使用dbms_metadata.get_ddl,您需要{user}授予select_catalog_rolesee here)。但即使你看不到它,也会使用该指数(如果适用/可能)。

答案 1 :(得分:0)

没有“索引许可”这样的东西。

我们授予对表的权限,因为我们可以对它们运行DML - 选择,更新,删除等。但是我们不对索引执行这样的操作,因此没有什么可以授予。

USER2无法看到DDL在User1表上创建索引的事实是非常正确的。这不关他们的事。 User2从表中进行选择,该查询将使用User1创建的任何适当的索引。