我们需要在包含java代码创建的视图的bigquery数据集中授予对特定用户组的访问权限。我发现datasets.patch方法可以帮助我做到这一点,但无法找到需要在http请求中传递的内容的文档。
答案 0 :(得分:1)
您可以在链接的文档页面中找到how to update BigQuery dataset access controls的完整文档。鉴于您已经以编程方式在数据集中创建视图,我建议您使用BigQuery client library,这可能比执行datasets.patch
method的API调用更方便。在任何情况下,如果您仍然有兴趣直接调用API,则应在请求正文中提供dataset resource的相关部分。
我分享的第一个链接提供了updating dataset access using the Java client libraries的一个很好的例子,但简而言之,这就是你应该做的:
public List<Acl> updateDatasetAccess(DatasetInfo dataset) {
// Make a copy of the ACLs in order to modify them (adding the required group)
List<Acl> previousACLs = dataset.getAcl();
ArrayList<Acl> ACLs = new ArrayList<>(previousACLs);
ACLs.add(Acl.of(new Acl.User("your_group@gmail.com"), Acl.Role.READER));
DatasetInfo.Builder builder = dataset.toBuilder();
builder.setAcl(ACLs);
bigquery.update(builder.build());
}
<强> 编辑: 强>
定义dataset
对象的方法如下:
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
Dataset dataset = bigquery.getDataset(DatasetId.of("YOUR_DATASET_NAME"));
请注意,如果在构造客户端对象bigquery
时未指定凭据,则客户端库将在GOOGLE_APPLICATION_CREDENTIALS
环境变量中查找凭据。