我如何授予其他人在 BigQuery 中阅读我的 INFORMATION_SCHEMA.SCHEMATA 的权限?
How can I give others permission to read my INFORMATION_SCHEMA.SCHEMATA in BigQuery?
我可以授予什么权限让世界上的每个人都可以查询我的信息模式?即我希望每个人都能够 运行:
select * from `projectid`.INFORMATION_SCHEMA.SCHEMATA
目前我回来了:
Access Denied: Table projectid:INFORMATION_SCHEMA.SCHEMATA: User does not have permission to query table projectid:INFORMATION_SCHEMA.SCHEMATA
通常在 BigQuery 中,您可以在数据集级别设置权限。例如,此查询将为任何人 运行,因为数据集对每个人都是 public:
SELECT *
FROM `fh-bigquery.flights.INFORMATION_SCHEMA.TABLES`
但是你不能这样做:
SELECT *
FROM `fh-bigquery.INFORMATION_SCHEMA.SCHEMATA`
这是因为您需要项目级别的权限才能查看我的所有数据集,即使是我没有创建的数据集 public。
如果您真的想与全世界共享所有数据集的架构,那么您可以为此创建一个自定义角色,并获得 bigquery.datasets.get
权限:
然后您需要将此角色分配给所有用户 - 但这不是一个选项。
在项目级别,您可以将此角色分配给以下角色之一:
Google Account email: user@gmail.com
Google Group: admins@googlegroups.com
Service account: server@example.gserviceaccount.com
G Suite domain: example.com
本例中的一个选项:
- 创建一个 Google 组。
- 将这个新角色赋予这个新 Google 组。
- 让这个 Google 群组免费加入。
- 告诉人们"hey, if you want to see my project SCHEMATA, join this group".
然后一切正常。
我可以授予什么权限让世界上的每个人都可以查询我的信息模式?即我希望每个人都能够 运行:
select * from `projectid`.INFORMATION_SCHEMA.SCHEMATA
目前我回来了:
Access Denied: Table projectid:INFORMATION_SCHEMA.SCHEMATA: User does not have permission to query table projectid:INFORMATION_SCHEMA.SCHEMATA
通常在 BigQuery 中,您可以在数据集级别设置权限。例如,此查询将为任何人 运行,因为数据集对每个人都是 public:
SELECT *
FROM `fh-bigquery.flights.INFORMATION_SCHEMA.TABLES`
但是你不能这样做:
SELECT *
FROM `fh-bigquery.INFORMATION_SCHEMA.SCHEMATA`
这是因为您需要项目级别的权限才能查看我的所有数据集,即使是我没有创建的数据集 public。
如果您真的想与全世界共享所有数据集的架构,那么您可以为此创建一个自定义角色,并获得 bigquery.datasets.get
权限:
然后您需要将此角色分配给所有用户 - 但这不是一个选项。
在项目级别,您可以将此角色分配给以下角色之一:
Google Account email: user@gmail.com
Google Group: admins@googlegroups.com
Service account: server@example.gserviceaccount.com
G Suite domain: example.com
本例中的一个选项:
- 创建一个 Google 组。
- 将这个新角色赋予这个新 Google 组。
- 让这个 Google 群组免费加入。
- 告诉人们"hey, if you want to see my project SCHEMATA, join this group".
然后一切正常。