Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 10/01/2009 23:04:06
- Alex
- Membre
Incapable de REVOKE des privilèges
Bonjour,
Je commence à peine avec postgresql (j'en suis encore à l'installation, c'est pour vous dire !) et je commence à peine à me familiariser avec la notion de rôles (quelques nouveautés pour moi qui est habitué à MySQL).
Alors en fait, dans l'ordre ce que je fais :
- J'ai installé la version 8.1 de postgresql, je suis sur Debian. J'ai modifié le mot de passe de l'utilisateur postgres et par défaut, j'ai une base de données postgres.
- Dans phppgadmin, je crée un rôle "alex" et je ne lui donne que le privilège de login.
- Je me connecte avec l'utilisateur "alex" et je peux voir la base de données postgres, créer des tables, tout faire bref. Donc déjà les privilèges par défaut c'est un problème.
- Je me reconnecte avec le superutilisateur postgres, et je fais un :
REVOKE ALL PRIVILEGES ON DATABASE postgres FROM alex;
Sans aucun succès : L'utilisateur alex peut encore et toujours tout faire sur la base postgres.
J'ai également essayé un REVOKE ... FROM PUBLIC, mais sans succès.
Bref, je pense que j'ai loupé un épisode sur les privilèges dans postgresql, car la documentation sur GRANT et REVOKE ne m'éclaire pas (j'ai tout lu de fond en comble).
Merci beaucoup !
Hors ligne
#2 12/01/2009 10:44:44
- gleu
- Administrateur
Re : Incapable de REVOKE des privilèges
Avec ces deux lignes :
<code>REVOKE ALL PRIVILEGES ON DATABASE postgres FROM alex;
REVOKE ALL PRIVILEGES ON DATABASE postgres FROM public;</code>
vous avez supprimer tous les droits d'Alex à la base de données postgres. Donc, si vous essayez de créer un schéma, vous devriez avoir un message d'erreur. Par contre, lorsque vous essayez de créer une table, la base de données n'est pas le parent direct. Le schéma, par défaut public, est ce parent et vous n'avez pas interdit à l'utilisateur Alex de créer des objets dans le schéma public. Donc cet utilisateur a toujours le droit de créer des tables. Et aussi des vues, des index, etc. Parce que leur parent est le schéma.
Au niveau de PostgreSQL, les droits doivent être spécifiés pour chaque objet.
Guillaume.
Hors ligne
Pages : 1