Google数据分析认证课程:BigQuery公共库访问权限错误求助
问题重现
执行以下查询语句:
SELECT usertype, CONCAT(start_station_name, " to ", end_station_name) AS route, COUNT(*) as num_trips, ROUND(AVG(cast(tripduration as int64)/60),2) AS duration FROM `bigquery-public-data.new_york_.citybike_trips` GROUP BY start_station_name, end_station_name, usertype ORDER BY num_trips DESC LIMIT 10
收到错误:
Access Denied: Table bigquery-public-data:new_york_.citybike_trips: User does not have permission to query table bigquery-public-data:new_york_.citybike_trips
排查步骤
确认项目结算账号状态
访问BigQuery公共数据集必须关联有效的结算账号,哪怕是使用免费额度。如果你的Google Cloud项目未绑定结算账号,会直接触发权限拒绝。前往Google Cloud控制台的结算页面,检查账号是否已绑定且状态正常。检查用户角色权限
你的账号需要拥有BigQuery Data Viewer角色(针对bigquery-public-data.new_york_数据集或整个bigquery-public-data),或者包含该权限的复合角色(如BigQuery User)。在IAM页面查看当前账号的角色配置,若权限不足,联系项目管理员添加对应角色。验证公共数据集访问权限开关
部分教育或企业项目会限制公共数据集的访问。在BigQuery控制台的项目设置中,确认是否开启了"允许访问公共数据集"的选项;如果是课程提供的项目,联系课程管理员确认是否开放了该权限。核对表名拼写
虽然错误提示是权限问题,但也可能是表名拼写错误。确认bigquery-public-data.new_york_.citybike_trips的拼写是否正确——注意new_york_末尾的下划线,可通过BigQuery公共数据集浏览功能搜索该表是否存在。
内容的提问来源于stack exchange,提问作者Matthew Hecht

