18.3. Droits
Quand un objet est créé, il est affecté à un propriétaire. Ce dernier
est habituellement le rôle qui a exécuté l'instruction de création.
Pour la plupart des objets, l'état initial est tel que seul le
propriétaire (ou un superutilisateur) peut faire quelque chose avec
cet objet. Afin de laisser les autres rôles utiliser l'objet, des
droits doivent être accordés. Il existe
différents droits : SELECT, INSERT, UPDATE, DELETE, REFERENCES,
TRIGGER, CREATE,
CONNECT, TEMPORARY,
EXECUTE, and USAGE.
Pour plus d'informations sur le support des différents types de
droits par PostgreSQL™,
regardez la page de référence GRANT.
Pour affecter des droits, la commande
GRANT
est utilisée. Ainsi, si
joe est un rôle existant et comptes est une table existante, le droit pour mettre
à jour la table peut être accordé avec
GRANT UPDATE ON comptes TO joe;
Le nom spécial PUBLIC peut être utilisé pour
accorder un droit à chaque rôle du système. Écrire ALL à la place d'un droit spécifique signifie que tous
les droits s'appliquant à l'objet seront accordés.
Pour révoquer un droit, utilisez la commande nommée REVOKE :
REVOKE ALL ON comptes FROM PUBLIC;
Les droits spéciaux d'un propriétaire d'un objet (par exemple, le
droit de modifier ou détruire un objet) sont toujours implicites et
ne peuvent pas être accordés ou révoqués. Mais le propriétaire peut
choisir de révoquer ses propres droits ordinaires, par exemple mettre
une table en lecture seule pour lui-même aussi bien que pour les
autres.
Un objet peut être affecté à un nouveau propriétaire avec une
commande
ALTER
du genre
approprié pour l'objet. Les superutilisateurs peuvent toujours le
faire ; les rôles ordinaires peuvent seulement le faire s'ils sont le
propriétaire actuel de l'objet (ou un membre du rôle propriétaire) et
un membre du nouveau rôle propriétaire.