PostgreSQLLa base de données la plus sophistiquée au monde.

5.6. Droits

Quand vous créez un objet dans la 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 droits doivent être accordés (néanmoins, les superutilisateurs ont toujours accès à n'importe quel objet).

Il existe plusieurs droits : SELECT, INSERT, UPDATE, DELETE, RULE, REFERENCES, TRIGGER, CREATE, TEMPORARY, EXECUTE et USAGE. Les droits applicables à un objet particulier varient suivant le type d'objet (table, fonction, etc.) Pour une information complète sur les différents types de droits gérés par PostgreSQL™, lisez la page de référence GRANT. La section et les chapitres suivants vous montreront aussi comment ces droits sont utilisés.

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

[Note]

Note

Pour modifier le propriétaire d'une table, d'un index, d'une séquence ou d'une vue, utilisez la commande ALTER TABLE. Il existe des commandes ALTER correspondant aux autres types d'objets.

Pour accorder des droits, la commande GRANT est utilisée. Par exemple, si joe est un utilisateur existant et comptes une table existante, le droit de mettre la table à jour peut être accordé avec

GRANT UPDATE ON comptes TO joe;

Pour accorder un droit à un groupe, utilisez

GRANT SELECT ON comptes TO GROUP equipe;

Le nom d'« utilisateur » spéciale PUBLIC peut être utilisé pour accorder un droit à tous les utilisateurs du système. Écrire ALL au lieu d'un droit spécifique accorde tous les droits adéquats pour ce type d'objet.

Pour révoquer un droit, utilisez la commande appropriée REVOKE ci-dessous :

REVOKE ALL ON comptes FROM PUBLIC;

Les droits spéciaux du propriétaire de l'objet (c'est-à-dire, 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 l'objet peut choisir de révoquer ses propres droits ordinaires pour, par exemple, mettre une table en lecture seule pour soi-même ainsi que pour les autres.

Habituellement, seul le propriétaire de l'objet (ou un superutilisateur) peut donner ou révoquer les droits sur un objet. Néanmoins, il est possible de donner un droit « avec une option de don de droits », qui donne à celui qui le reçoit de le donner à d'autres. Si cette option est ensuite révoquée, alors tous ceux qui ont reçu le droit de cet utilisateur (directement ou indirectement via la chaîne des dons) perdront leur droit. Pour des détails, voir les pages de références GRANT et REVOKE.