The way authorization is implemented in SonarQube is pretty standard. It is possible to create as many users and groups of users as required in the system. The users can then be attached (or not) to (multiple) groups. Groups and / or users are then given (multiple) permissions. The permissions grant access to projects, services and functionalities.
A group is a set of users.
To create a new group, go to Settings > Groups > Add new group:
To add/remove users to/from a group, click on the Select link in the Member column.
Two groups have a special meaning:
- Anyone is a group that exists in the system, but that cannot be managed. Every user belongs to this group, including Anonymous user.
- sonar-users is the default group to which users are automatically added. To change it, go to Settings > General Settings > Security and set the Default user group property.
To set global permissions, log in as a System administrator and go to Settings > Global Permissions.
- Administer System: Ability to perform all administration functions for the instance: global configuration and personalization of default dashboards.
- Administer Quality Profiles: Ability to perform any action on the quality profiles. Available since version 3.6.
- Execute Analysis: Ability to execute analyses (project, view, report, developer), and to get all settings required to perform the analysis, even the secured ones like the scm account password, the jira account password, and so on. Available since version 3.7.
- Execute Preview Analysis: Ability to execute preview analysis (results are not pushed to the server). This permission does not include the ability to access secured settings such as the scm account password, the jira account password, and so on. This permission is required to execute preview analysis in Eclipse or via the Issues Report plugin. Available since version 3.7. Was Local Analysis (Dry Run) prior to version 4.0.
- Provision Projects: Ability to initialize project structure before first analysis. Available since version 4.0.
- Share Dashboards and Filters: Ability to share dashboards, issue filters and measure filters. Available since version 3.7.
Four different permissions can be set on project-level resources (projects, views, developers):
- Browse: Ability to access a project, browse its measures, and create/edit issues for it.
- See Source Code: Ability to view the project's source code.
- Administer Issues: Grants the permission to perform advanced editing on issues: marking an issue False Positive or changing an Issue's severity. Available since version 4.1.
- Administer: Ability to access project settings and perform administration tasks.
Note that permissions are not cumulative. For instance, if you want to be able to administer the project, you also have to be granted the Browse permission to be able to access the project.
You can either manually grant permissions for each project to some users and groups or apply permission templates to projects (since version 3.7).
Manually grant permissions for each project to some users and groups
Log in as a System Administrator and go to Settings > Project Permissions > Projects (was Settings > Roles prior to version 3.7):
Apply permission templates to projects (available since version 3.7)
Create first some permission templates via Settings > Project Permissions > Permission Templates.
Since version 4.1, it is possible to provide a Project key pattern. By default, every new project matching this key pattern will be granted permissions of this template.
Then, apply permission templates to projects (either to a specific one through the Apply permission template link or do some bulk changes through the Bulk Change link).
Note that there is no relation between a project and a permission template, meaning that:
- the permissions of a project can be modified after a permission template has been applied to this project
- none of the project permissions is changed when a permission template is modified
Default project permissions
It is possible to configure the system so that when a new project (project, view, developer) is created, some users/groups are automatically granted permissions on this project.
For versions 3.7+, this is done through permission templates. Go to Settings > Project Permissions > Permission Templates > Set default templates:
For versions prior to 3.7, it is done through the Default roles for new Projects table:
In the example below, once a new project has been created:
- All the users in the sonar-administrators group can administrate (Administrators), access the project (Users) and browse the source code (Code viewers).
- The myAuditor user can access the project (Users) and browse the source code (Code viewers).
Import Source Code
For security reasons, you can prevent SonarQube to upload the source code to the database when analyzing a project. To do so, log in as a System administrator, go to Settings > General Settings > Security and set the Import sources property to false. Note that if you want to restrict the access to the source code, grant See Source Code permission accordingly.
I have locked myself out
To recreate a System administrator: