2013-02-26 42 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創建的任何適當的索引。