Vous n'êtes pas identifié(e).
Bonjour,
Un utilisateur qui n'a que des droits de lecture sur une base peut visiblement créer toutes les vues qu'il souhaite : celles-ci se retrouvent dans le schéma "public" (le CREATE VIEW y fonctionne).
Y a-t-il un moyen d'empêcher la création de ces vues dans ce schéma public ou pas ?
Si oui, comment faire ?
Merci d'avance pour votre aide.
Cedric
Hors ligne
Bonjour,
Vous pouvez faire ça :
revoke create view on database ma_base from mon_user;
Cordialement.
Cordialement,
Sébastien.
Hors ligne
Bonjour,
en complément, le comportement que vous constatez provient du fait que le schéma public est, par défaut, positionné avec les droits CREATE ET USAGE pour tous les utilisateurs.
Si ce réglage par défaut ne convient pas il est bien sûr possible de retirer ces droits par un REVOKE CREATE, USAGE ON SCHEMA public FROM PUBLIC ou, plus raisonnablement pour les seuls droits de création, par un REVOKE CREATE ON SCHEMA public FROM PUBLIC.
Éric
Hors ligne
Pour être complet avec ce que vient de dire Eric, cela supprime du coup le droit de tous les utilisateurs sur le schéma public. Si certaines doivent y avoir accès, il faut le leur donner individuellement.
Enfin, la requête de Sébastien ne correspond pas à une requête utilisable avec PostgreSQL.
Guillaume.
Hors ligne
"Enfin, la requête de Sébastien ne correspond pas à une requête utilisable avec PostgreSQL."
En effet, désolé, je fais trop d'Oracle en ce moment...
Normalement ceci doit fonctionner (en complément de la réponse de edlm) :
revoke all on schema public from mon_user;
revoke usage on schema public from mon_user;
Cordialement
Cordialement,
Sébastien.
Hors ligne
Merci pour toute ces réponses.
Je vais me contenter de révoquer les droits de création pour le moment, ça suffira.
Cordialement.
Cédric
Hors ligne