How to do it…

To revoke all rights on the table1 table from the user2 user, you must run the following SQL command:

REVOKE ALL ON table1 FROM user2;

However, if user2 has been granted another role that gives them some rights on table1, say role3, this command is not enough; you must also choose one of the following options:

  • Fix the user -that is, revoke role3 from user2
  • Fix the role - that is, revoke privileges on table1 from role3

Both choices are imperfect because of their side-effects: The former will revoke all the privileges associated to role3, not just the privileges concerning table1; the latter will revoke the privileges on table1 from all the other users that have been granted role3, not just from user2.

It is normally better ...

Get PostgreSQL 10 Administration Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.