2013-02-26 86 views
0

用户1授予选择,删除一个表的权限(有指数说TableIndex)到用户2。授予表和索引的权限给其他用户

我可以看到这个user2是不能够看到索引表上的现有虽然。

用户2运行此SQL:

select DBMS_METADATA.GET_DDL('INDEX','TableIndex') from DUAL; 
Result is: The specified object was not found in the database. 

当用户2执行选择SQL查询的表,我希望索引将被使用,没有任何进一步的赠款(本书虽然指数是不可见的)?

回答

0

为了使用dbms_metadata.get_ddl您需要授予user2(see here)的select_catalog_role。但是,即使您看不到它,索引也会被使用(在适用/可能的情况下)。

0

没有“索引许可”这样的事情。

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

用户2不能看到DDL来创建用户1的表的索引事实是完全正确的。这不关他们的事。用户2从表中进行选择,并且该查询将使用用户1创建的任何适当的索引。