2013-02-26 1 views
0

User1 grantants Выберите, удалите разрешения для таблицы (которая имеет индекс say TableIndex) пользователю2.Предоставление разрешений для таблиц и указателей для другого пользователя

Я вижу, что пользователь2 не может видеть индекс, существующий в этой таблице.

Пользователь2 запускает этот SQL:

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

Когда Пользователь2 выполняет Выбор SQL-запросы на столе, я надеюсь, что индекс будет использоваться, без каких-либо дополнительных грантов (Altho индекс не видно)?

ответ

0

для использования dbms_metadata.get_ddlselect_catalog_role предоставляется пользователю2 (see here). Но индекс будет использоваться (где это применимо/возможно), даже если вы его не видите.

0

Нет такого понятия, как «разрешение на указатель».

Предоставляем разрешения для таблиц, поскольку мы можем запускать DML против них - выбирать, обновлять, удалять и т. Д. Но мы не выполняем такие операции над индексами, и поэтому ничего не нужно предоставлять.

Тот факт, что USER2 не может видеть DDL для создания индексов на таблицах User1, совершенно прав. Это не их дело. Пользователь2 выбирает из таблицы, и этот запрос будет использовать любые соответствующие индексы, созданные пользователем1.