REVOKE

Revokes permissions from a role. REVOKE can also be used to revoke a role from another role or a user.

For more information, see Role-based access control.

REVOKE PRIVILEGE

Revokes a permission from a role.

Only account_admin or a role owner can revoke a permission to a role.

Syntax

REVOKE <permission> ON <object_type> <object_name> [IN <object_type> <object_name>] FROM <role_name>

Parameters

Parameter Description
<permission> The name of the permission to revoke from a role. Permissions that can be revoked vary depending on the object that they apply to. For a full list, see Permissions.
<object_type> The type of the object to revoke permissions from.
<object_name> The name of the object to revoke permissions from.
<role_name> The name of the role from which the permission will be revoked.

Examples

Revoke MODIFY permission on a database

The following code example revokes the MODIFY permission on the db database from the role user_role, preventing it from making changes to the database:

REVOKE MODIFY ON DATABASE db FROM user_role;

Revoke all permissions on a database

The following code example revokes the all permissions on the db database from the role user_role, preventing all operations on it:

REVOKE ALL ON DATABASE db FROM user_role;

Revoke USAGE permissions on all databases in an account

The following code example revokes USAGE permissions on all databases in the dev account from the role user_role, preventing it from accessing metadata or using those databases:

REVOKE USAGE ANY DATABASE ON ACCOUNT dev FROM user_role;

Revoke SELECT permission on a specific table

The following code example sets the active database to db and revokes user_role’s permission to read data from the my_table table in the public schema.:

USE DATABASE db;
REVOKE SELECT ON TABLE my_table IN SCHEMA public TO user_role;

Revoke SELECT permission on all tables in a schema

The following code revokes user_role’s permission to read data from all existing and future tables in the public schema of the db database:

REVOKE SELECT ANY ON SCHEMA public  IN DATABASE db TO user_role;

REVOKE ROLE

Revokes a role from a user or from another role.

Syntax

REVOKE ROLE <role_name> FROM { USER <user_name> | ROLE <role_name_2> }

Parameters

Parameter Description
<role_name> The name of the role to revoke.
<user_name> The name of the user from which to revoke the <role_name> role.
<role_name_2> The name of the role from which to revoke the role.

Examples

Revoke a role from another role

The following code example removes the role_name role from role_name_2, revoking access to permissions granted to role_name:

REVOKE ROLE role_name FROM ROLE role_name_2;

Revoke a role from a user

The following command revokes role role_name from user user_name, removing the user’s access to the permissions granted to role_name:

REVOKE ROLE role_name FROM USER user_name;