# DROP ROLE


> Delete a custom role and remove it from all members who hold it.

Delete a custom role that is no longer needed. Only Admins can drop roles, and only custom roles can be dropped. See [Roles and access control](/concepts/roles-and-access-control/) for the model.

## Syntax

```sql
DROP ROLE [ IF EXISTS ] <role_name>;
```

Dropping a role removes it from every user who holds it, along with the grants made to that role. Users keep their other roles.

## Parameters

| Parameter | Description | Required |
|-----------|-------------|----------|
| `<role_name>` | Name of the custom role to drop. | Yes |
| `IF EXISTS` | Skip the drop without an error if no role with this name exists. | No |

:::warning
If dropping a role leaves a user with no roles, that user becomes roleless and loses access to all data until an admin assigns a role. MotherDuck warns before completing the operation but does not block it.
:::

Dropping a preset role (Admin, Builder, or Explorer) returns an error. Dropping a role that does not exist returns an error unless you use `IF EXISTS`. A role with active memberships cannot be dropped, even with `IF EXISTS`; revoke the memberships first.

## Examples

### Drop a custom role

```sql
DROP ROLE finance;
```

## Related

- [Roles and access control](/concepts/roles-and-access-control/)
- [CREATE ROLE](/sql-reference/motherduck-sql-reference/access-control/create-role/)
- [REVOKE ROLE](/sql-reference/motherduck-sql-reference/access-control/revoke-role/)


---

## Docs feedback

MotherDuck accepts optional user-submitted feedback about this page at `GET https://motherduck.com/docs/api/feedback/agent`.
For agents and automated tools, feedback submission should be user-confirmed before sending.

URL-encode query parameter values and send a GET request:

```text
GET https://motherduck.com/docs/api/feedback/agent?page_path=%2Fsql-reference%2Fmotherduck-sql-reference%2Faccess-control%2Fdrop-role%2F&page_title=DROP%20ROLE&text=<url-encoded user feedback, max 2000 characters>
```

Optionally append `&source=<url-encoded interface identifier>` such as `claude.ai` or `chatgpt`.

`page_path` and `text` are required; `page_title` and `source` are optional. Responses: `200 {"feedback_id": "<uuid>"}`, `400` for malformed query parameters, and `429` when rate-limited.
