REVOKE SQL - Language Statements REVOKE Revokes access privilege from a user, a group or all users. 1998-09-24 REVOKE privilege [, ...] ON object [, ...] FROM { PUBLIC | GROUP ER">gBLE> | username } 1998-09-24 Inputs privilege The possible privileges are: SELECT Privilege to access all of the columns of a specific table/view. INSERT Privilege to insert data into all columns of a specific table. UPDATE Privilege to update all columns of a specific table. DELETE Privilege to delete rows from a specific table. RULE Privilege to define rules on table/view. (See CREATE RULE). ALL Rescind all privileges. object The name of an object from which to revoke access. The possible objects are: table view sequence index group The name of a group from whom to revoke privileges. username The name of a user from whom revoke privileges. Use the PUBLIC keyword to specify all users. PUBLIC Rescind the specified privilege(s) for all users. 1998-09-24 Outputs CHANGE Message returned if successfully. ERROR Message returned if object is not available or impossible to revoke privileges from a group or users. 1998-09-24 Description REVOKE allows creator of an object to revoke permissions granted before, from all users (via PUBLIC) or a certain user or group. 1998-09-24 Notes Refer to psql \z command for further information about permissions on existing objects: Database = lusitania +------------------+---------------------------------------------+ | Relation | Grant/Revoke Permissions | +------------------+---------------------------------------------+ | mytable | {"=rw","miriam=arwR","group todos=rw"} | +------------------+---------------------------------------------+ Legend: uname=arwR -- privileges granted to a user group gname=arwR -- privileges granted to a GROUP =arwR -- privileges granted to PUBLIC r -- SELECT w -- UPDATE/DELETE a -- INSERT R -- RULE arwR -- ALL Currently, to create a GROUP you have to insert data manually into table pg_group as: INSERT INTO pg_group VALUES ('todos'); CREATE USER miriam IN GROUP todos; Usage Revoke insert privilege from all users on table films: REVOKE INSERT ON films FROM PUBLIC; Revoke all privileges from user manuel on view kinds: REVOKE ALL ON kinds FROM manuel; Compatibility 1998-09-01 SQL92 The SQL92 syntax for REVOKE has additional capabilities for rescinding privileges, including those on individual columns in tables: REVOKE { SELECT | DELETE | USAGE | ALL PRIVILEGES } [, ...] ON object FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE } REVOKE { INSERT | UPDATE | REFERENCES } [, ...] [ ( column [, ...] ) ] ON object FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE } Refer to GRANT for details on individual fields. REVOKE GRANT OPTION FOR privilege [, ...] ON object FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE } Rescinds authority for a user to grant the specified privilege to others. Refer to the GRANT command for details on individual fields. The possible objects are: [ TABLE ] table/view CHARACTER SET character-set COLLATION collation TRANSLATION translation DOMAIN domain If user1 gives a privilege WITH GRANT OPTION to user2, and user2 gives it to user3 then user1 can revoke this privilege in cascade using the CASCADE keyword. If user1 gives a privilege WITH GRANT OPTION to user2, and user2 gives it to user3 then if user1 try revoke this privilege it fails if he/she specify the RESTRICT keyword.