Open In App

PostgreSQL – REVOKE

Last Updated : 01 Aug, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

In PostgreSQL, the REVOKE statement plays a crucial role in managing database security by removing previously granted privileges from roles or users.

Let us better understand the REVOKE Statement in PostgreSQL from this article.

Syntax

The following shows the syntax of the REVOKE statement:

REVOKE privilege | ALL
ON TABLE tbl_name | ALL TABLES IN SCHEMA schema_name
FROM role_name;

Let’s analyze the above syntax:

  • Privilege: Specify the privileges that are to be revoked. Use the ALL option to revoke all previously granted privileges.
  • Table Specification: Then, set the name of the table after the ON keyword.
  • Role: Finally, specify the name of the role whose privileges are to be revoked.

PostgreSQL REVOKE Statement Example

Let us look into an example of REVOKE statement in PostgreSQL.

1. Log into PostgreSQL

First, log into the dvdrental sample database as Postgres:

psql -U postgres -d dvdrental

2. Create a Role

Now initialize a role called ‘abhishek‘ with the LOGIN and PASSWORD attributes as shown below:

CREATE ROLE abhishek
LOGIN
PASSWORD 'geeks12345';

3. Grant Privileges

Now grant all privileges on the ‘film’ table to the role ‘abhishek‘ as shown below:

GRANT ALL 
ON film
TO abhishek;

Now provide the SELECT privilege on the actor table to the role ‘abhishek‘ as shown below:

GRANT SELECT
ON actor
TO abhishek;

4. Revoke Specific Privileges

Here we will revoke the SELECT privilege on the ‘actor’ table from the role ‘abhishek‘, as shown below:

REVOKE SELECT
ON actor
FROM abhishek;

5. Revoke All Privileges

If you wish to revoke all privileges on the film table from the role ‘abhishek‘, make use of the REVOKE statement with the ALL option as shown below:

REVOKE ALL
ON film
FROM abhishek;

Output:

PostgreSQL REVOKE Statement Example

Important Points About PostgreSQL REVOKE Statement

  • Revoking privileges does not affect existing data in the database but prevents the role from performing actions (like querying or modifying data) as specified by the revoked privileges.
  • The REVOKE command can only remove privileges that were previously granted to the role.
  • If a role has been granted privileges through other roles (i.e., role hierarchies), revoking privileges from the parent role may affect child roles as well.
  • If you attempt to revoke privileges that a role does not have, PostgreSQL will not produce an error; the command will simply have no effect.

Next Article

Similar Reads

three90RightbarBannerImg