hamdog
hamdog

Reputation: 1181

Big Query give user access to a single table

I wanted to give a user the ability to view and query a single table in a much larger dataset. Is there some way to allow the user to query just that table? I know I can restrict access to datasets, but is there a way to give permissions at a table level?

Upvotes: 4

Views: 16675

Answers (4)

mkumar118
mkumar118

Reputation: 481

Giving access on a per-table basis is possible in GCP now. Check https://cloud.google.com/bigquery/docs/table-access-controls-intro for more details, but essentially, you need to use the bigquery.tables.setIamPolicy directive to grant access to specific tables.

So, for example, using the bq CLI command, you can run the following command to grant access to table xyz

bq set-iam-policy --table=true xyz

Upvotes: 4

Browny Lin
Browny Lin

Reputation: 2507

Table ACL has been introduced in beta, see doc here:
https://cloud.google.com/bigquery/docs/table-access-controls-intro

Upvotes: 7

Matus Cimerman
Matus Cimerman

Reputation: 447

As already mentioned, there's not way of sharing single table. Creating an Authorized View is the way to go, see full tutorial here: https://cloud.google.com/bigquery/docs/share-access-views

Upvotes: 2

Mikhail Berlyant
Mikhail Berlyant

Reputation: 172994

There is no way to set permission on table level! As you mentioned in your question - you can so this only on dataset level

Meantime, there is workaround that might help you - you can use so called authorized view

what you can do is create new dataset (let's say for such users) and inside that dataset you create view on top of table of interest. Now you can give that view VIEW permission for original dataset using authorized view option. SO in this case you don't need to give the user VIEW permission to original dataset. The only what user need is VIEW permission to dataset where this new view is created

Upvotes: 5

Related Questions