|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2006 Messages : 12 ![]() |
Bonjour,
j'ai créé une vue sur une table, et avec toad je ne peux pas modifier les données. Les zones de saisie de Toad semble comme blockées !!! |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
on ne peut pas updater une vue... une vue c'est qu'une requête SQL stockée en base et exécuté à chaque SELECT de la vue, comment Oracle pourrait-il mettre à jour des données non stockées ?
|
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : mai 2006 Messages : 12 ![]() |
Pas du tout, dans certain cas on peut modifier une vue :
faite le test suivant : Code :
Avec SQLPLUS et avec ACCESS en attachement ODBC ca marche parfaitement, c'est juste que peut etre Toad bride la chose !!!! |
||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
oui bien sûr, j'ai pas voulu compliqué la chose étant donné que faire un update d'une vue me parait particulièrement être une mauvaise pratique
Pour préciser ce que j'ai dit : on ne peut mettre à jour qu'une vue simple, qui ne contient pas calcul, ni de transformation, ni de jointure, etc... PS : merci de penser aux balises CODE |
|
|
00
|
|
|
#5 | |||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Citation:
Code :
Cependant, comme mentionné par orafrance, de nombreuses conditions rendent la vue inéditable. |
|||
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
c'est sûr mais le FGA me semble plus approprié et plus propre qu'une vue pour ça, non ?
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
tu veux dire RLS ?
Row-Level Security (ou Fain Grained Access Control) est disponible avec la version Enterprise et permet d'implémenter la VPD (Virtual Private Database). L'API est DBMS_RLS FGA c'est l'abréviation de Fain Grained Auditting, avec l'api DBMS_FGA, et ça permet de faire un audit de manière plus élaborée que AUDIT SELECT, car même le SELECT exécuté peut être capturé. Je pense que d'avoir un role UPDATE sur une vue est tout à fait acceptable. Pas forcément besoin de définir des polices avec DBMS_RLS, ou bien? J'attends tes commentaires |
|
00
|
|
|
#8 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
|
|
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Oui, je ne dis pas que je suis un grand fan des vues (ni lecture-seule ni lecture-écriture), mais si on employe des vues, on peut aussi bien les employer pour l'écriture que la lecture, non?
Bon, si tu ne veux pas qu'on mette à jour tes vues, créée les read-only Code :
|
||
|
00
|
|
|
#10 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
le problème de l'écriture dans les vues c'est qu'il y a une grosse faille qui peut permettre de modifier des données via la vue même si le user n'a pas les droits sur la table
|
|
|
00
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
1) tu dois avoir les droits sur la vue pour modifier la vue
2) si la vue t'appartient, alors tu ne peux pas modifier la table. Il y avait effectivement un bug qui est fixé depuis quelques années qui permettait d'effacer le contenu d'une table avec seulement les privilège "SELECT" et "CREATE VIEW". Il ne faut pas donner CREATE VIEW à un utilisateur final, mais créer des vues avec des droits sur la vue et non sur la table ne me pose personnellement pas de problème. Je trouve que ça augmente la sécurité plus que ça ne la diminue (tu peux masquer certaines colonnes) |
|
00
|
Copyright © 2000-2012 - www.developpez.com