0

User1は、テーブル(TableIndexなどのインデックスを持つ)に対するSelect、Delete権限をuser2に付与します。

ただし、user2はそのテーブルに存在するインデックスを表示できないことがわかります。

User2は次のSQLを実行します。

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

User2がテーブルでSelectSQLクエリを実行するとき、それ以上の許可なしにインデックスが使用されることを望みます(代替インデックスは表示されません)?

4

2 に答える 2

0

使用するには、user2に付与するdbms_metadata.get_ddl必要があります(ここを参照)。ただし、インデックスは表示されなくても(該当する/可能な場合)使用されます。select_catalog_role

于 2013-02-26T10:21:10.777 に答える
0

「インデックス許可」のようなものはありません。

テーブルに対してDMLを実行できるため、テーブルにアクセス許可を付与します(select、update、deleteなど)。ただし、インデックスに対してこのような操作を実行しないため、付与するものはありません。

USER2がDDLを認識して、User1のテーブルにインデックスを作成できないという事実は非常に正しいです。それは彼らの仕事ではありません。User2はテーブルから選択し、そのクエリはUser1が作成した適切なインデックスを利用します。

于 2013-02-26T12:46:11.910 に答える