Pour voir les droits possibles il faut regarder la page de doc de la commande GRANT de la version de PostgreSQL utilisée. Généralement à chaque nouvelle version il y a de nouveaux droits.
Il y a aussi ALTER DEFAULT PRIVILEGES pour les droits des tables objets crééés dans le futur.
Mais à ma connaissance il n'y a pas de droit permettant à un utilisateur X de faire par exemple un
ALTER TABLE nomtable DROP COLUMN nomcol;
alors que la table appartient à un utilisateur Y. Ou alors il faut qu'il soit superutilisateur.
Si il y a absolument besoin de faire ça, une solution est bricolable dans une fonction qui appartienne à Y et qui soit en mode SECURITY DEFINER, c'est-à-dire qu'à l'exécution la fonction a les droits de Y au lieu de ceux de l'appelant.
Partager