Oracle
 sql >> Base de données >  >> RDS >> Oracle

Contourner le privilège de table et WITH GRANT OPTION en créant des vues

Ce que vous avez décrit ne fonctionne pas. En tant qu'utilisateur A :

create table t (id number);

Table T created.

grant select on t to b;

Grant succeeded.

En tant qu'utilisateur B :

create view v as select * from a.t;

View V created.

grant select on v to c;

SQL Error: ORA-01720: grant option does not exist for 'A.T'
01720. 00000 -  "grant option does not exist for '%s.%s'"
*Cause:    A grant was being performed on a view or a view was being replaced
           and the grant option was not present for an underlying object.
*Action:   Obtain the grant option on all underlying objects of the view or
           revoke existing grants on the view.

Ceci est mentionné dans la documentation :

Même le grant any object privilege le privilège ne contourne pas cela ; bien qu'il doive y avoir un privilège (puissant) qui fonctionne comme un DBA complet peut faire grant select on b.v to c .