Cloud Enterprise
Custom roles are only available on Lightdash Enterprise plans.For more information on our plans, visit our pricing page.
Overview
Lightdash provides two types of roles:- System roles: Pre-defined roles (like Admin, Developer, Viewer) with a standard set of scopes. For more information about what these roles can do, check our default system roles permission matrix.
- Custom roles: User-defined roles where you can select specific scopes to match your exact requirements
Additive Permissions: Lightdash uses an additive permission model. If a user already has a scope granted through their organization-level role, assigning a custom role will not restrict that access. Custom roles can only add permissions, not remove existing ones.
Creating Custom Roles
Access Custom Roles Settings
- Navigate to Settings → General Settings → Custom Roles
- You’ll see a list of existing custom roles in your organization
Create a New Role from Scratch
- Click Create New Role
- Enter a Role Name (e.g., “Marketing Analyst”, “Finance Viewer”)
- Add an optional Description to explain the role’s purpose
- Select the specific scopes (permissions) you want to include:
- View permissions: Allow users to see content (dashboards, charts, spaces)
- Create permissions: Allow users to create new content
- Manage permissions: Allow users to edit, delete, or administer content
- Click Save to create the role

Duplicate an Existing Role
If you want to create a role similar to an existing one:- Find the role you want to duplicate (system role or custom role)
- Click the ⋯ menu next to the role
- Select Duplicate Role
- Enter a new name for the duplicated role
- Modify the scopes as needed
- Click Save

Assigning Custom Roles
Custom roles are assigned at the project level to provide granular access control:Assign to Users
- Go to Project Settings → Access
- Find the user you want to assign a role to
- Select the custom role from the dropdown
- The user will now have the permissions defined in that custom role for this project
Assign to Groups
- Go to Project Settings → Access
- Find the group you want to assign a role to
- Select the custom role from the dropdown
- All members of the group will inherit the custom role permissions for this project
Scope reference
Manage SQL Runner vs Manage Custom SQL
These two scopes are independent and control different features. Manage SQL Runner controls access to the SQL Runner, which lets users write and run ad-hoc SQL queries directly against your data warehouse. It also controls the ability to create virtual views and write back dbt models from SQL Runner queries. Manage Custom SQL controls the ability to create custom SQL dimensions inside the Explore view. Custom SQL dimensions let users add calculated fields to an existing table using raw SQL. This scope does not grant access to the SQL Runner.Troubleshooting
Users Can’t See Expected Content
- Verify the custom role includes the necessary view scopes
- Check that the role is assigned at the project level where the content exists
- Remember that organization-level permissions may override custom role limitations
Role Changes Not Taking Effect
- Users may need to refresh the page for role changes to take effect
- Verify the role was saved successfully and assigned to the correct users/groups
Managing Existing Custom Roles
Edit a Custom Role
- Go to Settings → General Settings → Custom Roles
- Click on the role you want to edit
- Modify the name, description, or scopes
- Click Save - changes will apply to all users and groups assigned this role
Delete a Custom Role
- First, ensure no users or groups are assigned this role
- Go to Settings → General Settings → Custom Roles
- Click the trash icon next to the role
- Confirm the deletion
Deleting Roles: Once deleted, a custom role cannot be recovered. You can’t remove a role that is currently assinged to users or groups.