BigQuery uses ACLs to manage permissions on projects and datasets. ACLs are not directly supported on tables. A table inherits its ACL from the dataset that contains it.
Project roles affect your ability to run jobs or manage the project, while dataset roles affect how you can access or modify the data inside of a project.
Contents
Project roles
By default, granting access to a project also grants access to datasets within it. Default access can be overridden on a per-dataset basis. Any user with the project Is Owner role has the ability to revoke or change any project role.
Supported entity types
Project roles are granted or revoked for individual users, groups or service accounts, by specifying an email address.
Supported project roles
BigQuery supports the following project roles:
| Project role | Capabilities |
|---|---|
Can View |
|
Can Edit |
|
Is Owner |
|
Default access
When you create a new project in the Google Developers Console, the following roles are automatically granted:
| Project role | Entity |
|---|---|
Is Owner |
The user who created the project |
Granting and revoking access
Project roles are granted or revoked through the Google Developers Console. You must have Is Owner access to the project in order to grant or revoke a new project role.
For more information about how to grant or revoke access for project roles, see Managing project members.
Dataset roles
Supported entity types
Dataset roles can be granted to the following entity types:
| Entity type | API |
|---|---|
| Single users, by email address | access.userByEmail |
| A Google Group, by email address | access.groupByEmail |
| A predefined group of users, such as all users, or a group of users that have the same project role for the project that contains the dataset | access.specialGroup |
Supported dataset roles
BigQuery supports the following dataset roles:
| Dataset role | Capabilities |
|---|---|
READER |
|
WRITER |
|
OWNER |
Note: A dataset must have at least one entity with the |
Default access
When you create a new dataset, BigQuery adds default dataset access for the following entities. Roles that you specify on dataset creation overwrite the default values.
| Entity | Project role |
|---|---|
All users with Can View access to the project |
READER |
All users with Can Edit access to the project |
WRITER |
All users with Is Owner access to the project |
OWNER |
Granting and revoking access
Dataset roles are granted or revoked by using one of following options:
- Through the BigQuery API, using update
- Through the browser tool, by clicking the dropdown next to a dataset name, and then clicking Share dataset
Other services
In addition to project and dataset roles, you might need additional access rights when working with BigQuery. For example, when loading data into BigQuery from Google Cloud Storage, you need a certain level of access to the bucket where the data resides.
We list information about these required roles at the top of certain topics in the BigQuery documentation, such as loading data and exporting data.