2013-02-26 8 views
0

Subventions utilisateur1 Sélectionnez, Supprimer les autorisations sur une table (dont l'index indique TableIndex) à un utilisateur2.Octroi d'autorisations de table et d'index à un autre utilisateur

Je peux voir que l'utilisateur2 n'est pas capable de voir l'index existant sur cette table.

Utilisateur2 exécute ce SQL:

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

Lorsque Utilisateur2 exécute Sélectionnez des requêtes SQL sur la table, je l'espère indice sera utilisé, sans aucune autre subvention (altho index n'est pas visible)?

Répondre

0

afin d'utiliser dbms_metadata.get_ddl vous avez besoin select_catalog_role accordé à utilisateur2 (see here). Mais l'index sera utilisé (le cas échéant/possible) même si vous ne pouvez pas le voir.

0

Il n'existe pas de "permission d'index". Nous accordons des permissions sur les tables, car nous pouvons lancer DML contre elles - sélectionner, mettre à jour, supprimer, etc. Mais nous n'exécutons pas de telles opérations sur les index, et donc il n'y a rien à accorder.

Le fait que USER2 ne peut pas voir le DDL pour créer les index sur les tables de User1 est tout à fait raison. Ce n'est pas leur affaire. L'utilisateur 2 sélectionne dans la table et cette requête utilisera les index appropriés créés par User1.

Questions connexes