5.7. Privilèges

Quand vous créez un objet base de données, vous en devenez le propriétaire. Avec les paramètres par défaut, seul le propriétaire d'un objet peut faire quelque chose avec. Pour que d'autres utilisateurs puissent s'en servir, des privilèges doivent être accordés. (Certains utilisateurs ont le privilège super-utilisateur. Ceux la ont toujours accès à n'importe quel objet.)

Note : Pour changer le propriétaire d'une table, index, séquence ou vue, utilisez la commande ALTER TABLE.

Il y a plusieurs privilèges différents : SELECT, INSERT, UPDATE, DELETE, RULE, REFERENCES, TRIGGER, CREATE, TEMPORARY, EXECUTE, USAGE et ALL PRIVILEGES. Pour une information complète sur les différents types de privilèges gérés par PostgreSQL, lisez la page de référence GRANT. La section et les chapitres suivants vous montreront aussi comment ces privilèges sont utilisés.

Le droit de modifier ou de détruire est le privilège du propriétaire seul.

Pour accorder des privilèges, la commande GRANT est utilisé. Donc, si joe est un utilisateur existant et accounts une table existante, le privilège de mettre la table à jour peut être accordé avec

GRANT UPDATE ON accounts TO joe;

L'utilisateur qui lance cette commande doit être le propriétaire de la table. Pour accorder un privilège à un groupe, utilisez

GRANT SELECT ON accounts TO GROUP staff;

Le nom d'<< utilisateur >> spéciale PUBLIC peut être utilisé pour accorder un privilège à tout les utilisateurs du système. Écrire ALL au lieu d'un privilège spécifique stipule que tout les privilèges doivent être accordés

Pour révoquer un privilège, utilisez la commande approprié ci dessous; REVOKE :

REVOKE ALL ON accounts FROM PUBLIC;

Les privilèges spéciaux du propriétaire de la table (e.j., le droit de faire des DROP, GRANT, REVOKE, etc.) sont toujours implicitement ceux du propriétaire et ne peuvent être ni accordés ni révoqués. Mais le propriétaire de la table peut choisir de révoquer ses propres privilèges ordinaires pour, par exemple, mettre une table en lecture seule pour soi-même en plus que pour les autres.