bonjour
comment interdire les mises à jour et les suppressions sur une table de la base
oracle 10 g
bonjour
comment interdire les mises à jour et les suppressions sur une table de la base
oracle 10 g
Uniquement sur une table , je ne crois pas qu'il y ai de solution toute prête. (quoique en 11g c'est possible il me semble)
Si c'était sur un tablespace, tu aurais pu simplement le passer en read only.
Je pense qu'un trigger devrait faire l'affaire, mais il y a peut être une solution 'plus propre' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 create or replace trigger read_only_NomTable before insert or update or delete on NomTable begin raise_application_error (-20001, 'Table NomTable en read only'); end; /
Si ces droits doivent s'appliquer à un autre utilisateur que le propriétaire de la table, tu n'as rien à faire tant que tu n'as donné explicitement les droits.
Si cela concerne le propriétaire...pas défaut il a les droits alter et tout DML sur ses propres objets.
Le plus simple serait de placer la table dans un tablespace READONLY mais attention : jusqu'en 10gr1 il est possible de dropper ou altérer une table placée dans un tablespace en READONLY (voir note Metalink 272566.1).
Bonjour
Vous pouvez éventuellement utiliser l'astuce décrite ici : http://oracle.developpez.com/faq/?pa...#tablereadonly.
A noter cependant que cela ne fonctionnera pas si vous utilisez des chargements SQL*Loader en mode DIRECT.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager