I've granted an internal user permission to query datasets in our Project, under the 'IAM & admin' section.
When the user queries the tables, will the cost of running the queries be billed to the Project's account? Ideally any costs associated with a user running a query would be charged to one central account.
Or will the user be charged on their own separate bill?
Does billing work the same using the 'Share Dataset' option instead of adding a user under the IAM section? As in, the user email whom the dataset is shared with will have any related query costs applied to the project owner's account or their own account?
BigQuery storage costs are billed to the billing account attached to the project where data resides
Meantime, charges associated with BigQuery jobs (query) are billed to the billing account attached to the project from which user runs jobs (query)
If user uses BigQuery UI - this is a project you (user) see on top of projects lists and it gets billed for all queries executed within it - no matter where data that is being queried actually resides
In case if user uses API or any client library - so called billing project is a part of respective API or client's method that needs to be provided by user
For project to be qualified for user to run queries from and thus to have use it as a billing project - user must have bigquery.jobs.create
permission set in IAM
See more about roles and permissions here - https://cloud.google.com/bigquery/docs/access-control#permissions_and_roles
Meantime, using the 'Share Dataset' option - just gives user specific permission to have access to respective dataset
Hope this clears your question