---
title: Control access to cases
description: Create custom roles and configure Kibana feature privileges to control access to cases.
url: https://www.elastic.co/docs/explore-analyze/cases/control-case-access
products:
  - Elastic Cloud Serverless
  - Elastic Observability
  - Elastic Security
  - Kibana
applies_to:
  - Elastic Cloud Serverless: Generally available
  - Elastic Stack: Generally available
---

# Control access to cases
To manage cases, users need the appropriate Kibana feature privileges. You can grant different levels of access depending on what users need to do, from full control over cases to view-only access.

## Create custom roles for cases

To grant users the appropriate case privileges, create a custom role with the required Kibana feature privileges.
<applies-switch>
  <applies-item title="stack: ga" applies-to="Elastic Stack: Generally available">
    1. Go to the **Roles** management page in the navigation menu or use the [global search field](https://www.elastic.co/docs/explore-analyze/find-and-organize/find-apps-and-objects).
    2. Click **Create role**.
    3. Enter a role name and (optional) description.
    4. Under **Kibana privileges**, click **Add Kibana privilege**.
    5. Select the appropriate spaces or **All Spaces** and expand the feature privileges for **Cases** under your solution (**Management**, **Security**, or **Observability**).
    6. Set the privilege level (`All`, `Read`, or `None`) and customize sub-feature privileges as needed.
    7. Click **Create role**.
  </applies-item>

  <applies-item title="serverless: ga" applies-to="Elastic Cloud Serverless: Generally available">
    1. Go to the **Custom Roles** management page in the navigation menu or use the [global search field](https://www.elastic.co/docs/explore-analyze/find-and-organize/find-apps-and-objects).
    2. Click **Create role**.
    3. Enter a role name and (optional) description.
    4. Select the appropriate spaces or **All Spaces** and expand the feature privileges for **Cases** under your solution (**Security** or **Observability**).
    5. Set the privilege level (`All`, `Read`, or `None`) and customize sub-feature privileges as needed.
    6. Click **Create role**.
  </applies-item>
</applies-switch>


## Give full access to manage cases and settings

<applies-switch>
  <applies-item title="stack: ga" applies-to="Elastic Stack: Generally available">
    - `All` for the **Cases** feature under the appropriate solution (**Management**, **Security**, or **Observability**). This grants full control over cases, including creating, deleting, and editing case settings. You can customize sub-feature privileges to limit access.
    - `All` for the **Actions and Connectors** feature under **Management**. This is required to create, add, delete, and modify connectors that push cases to external systems.
  </applies-item>

  <applies-item title="serverless: ga" applies-to="Elastic Cloud Serverless: Generally available">
    - `All` for the **Cases** feature under the appropriate solution (**Security** or **Observability**).
    - `All` for the **Actions and Connectors** feature under **Management**. This is required to create, add, delete, and modify case connectors and send updates to external systems.
  </applies-item>
</applies-switch>


## Give assignee access to cases

<applies-switch>
  <applies-item title="stack: ga" applies-to="Elastic Stack: Generally available">
    `All` for the **Cases** feature under the appropriate solution (**Management**, **Security**, or **Observability**).Users must log in to their deployment at least once before they can be assigned to cases. Logging in creates the required user profile.
  </applies-item>

  <applies-item title="serverless: ga" applies-to="Elastic Cloud Serverless: Generally available">
    `All` for the **Cases** feature under the appropriate solution (**Security** or **Observability**).Users must log in to their deployment at least once before they can be assigned to cases. Logging in creates the required user profile.
  </applies-item>
</applies-switch>


## Give view-only access to cases

<applies-switch>
  <applies-item title="stack: ga" applies-to="Elastic Stack: Generally available">
    `Read` for the **Cases** feature under the appropriate solution (**Management**, **Security**, or **Observability**).
  </applies-item>

  <applies-item title="serverless: ga" applies-to="Elastic Cloud Serverless: Generally available">
    `Read` for the **Cases** feature under the appropriate solution (**Security** or **Observability**).
  </applies-item>
</applies-switch>


## Give access to add alerts to cases

<applies-switch>
  <applies-item title="{ stack: ga 9.4+, serverless: ga }" applies-to="Elastic Cloud Serverless: Generally available, Elastic Stack: Generally available since 9.4">
    - `All` for the **Cases** feature under the appropriate solution (**Security** or **Observability**).
    - To work with alerts in cases:
      - **Security**: `Read` or `All` for the **Security > Alerts** feature. For what each level allows, refer to [Detections privileges](/docs/solutions/security/detect-and-alert/detections-privileges#manage-alerts).
    - **Observability**: `Read` for **Observability**
  </applies-item>

  <applies-item title="stack: ga 9.0-9.3" applies-to="Elastic Stack: Generally available from 9.0 to 9.3">
    - `All` for the **Cases** feature under the appropriate solution (**Security** or **Observability**).
    - `Read` for a solution that has alerts (for example, **Observability** or **Security**).
  </applies-item>
</applies-switch>


## Revoke all access to cases

<applies-switch>
  <applies-item title="stack: ga" applies-to="Elastic Stack: Generally available">
    `None` for the **Cases** feature under the appropriate solution (**Management**, **Security**, or **Observability**).
  </applies-item>

  <applies-item title="serverless: ga" applies-to="Elastic Cloud Serverless: Generally available">
    `None` for the **Cases** feature under the appropriate solution (**Security** or **Observability**).
  </applies-item>
</applies-switch>