For user to run query - user need to have bigquery.jobs.create
permission
If your user already has this permission in any other project - you can just simply share your dataset with this user with Can View Access Level
If user is new and does not have yet bigquery.jobs.create in any other project - you can just add this user to your project with this permission only.

And still you need add this user to ACL for that
specific dataset
Important: Please also note - if you give user permission to create jobs in your project - you will be billed
for respective queries.
If user has its "own" project and only has view access to you data - in this case bill goes to user's project