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

Pourquoi PL/SQL ne respecte-t-il pas les privilèges accordés par les rôles ?

C'est probablement une combinaison de paresse et de SET ROLE commande.

Je ne suis pas d'accord sur le fait que ce n'est pas autorisé en raison de dépendances complexes. Oracle gère déjà des dépendances complexes. Et en 12c il est possible d'attribuer un rôle à un objet.

Je pense que la vraie raison pour laquelle les objets n'héritent pas des rôles de l'utilisateur est à cause du SET ROLE commande. Il est possible qu'un utilisateur se voie attribuer un rôle mais qu'il l'active et le désactive au cours d'une session. C'est une fonctionnalité stupide et je ne l'ai jamais vue utilisée. Mais théoriquement, cela nécessiterait une recompilation au sein de la même session ou transaction, ce qui serait vraiment déroutant.