【问题标题】:Update bigquery dataset access from java从 java 更新 bigquery 数据集访问
【发布时间】:2018-06-12 10:12:50
【问题描述】:

我们有一个要求,我们需要在包含由 java 代码创建的视图的 bigquery 数据集中授予对特定用户组的访问权限。我发现 datasets.patch 方法可以帮助我做到这一点,但无法找到需要在 http 请求中传递的文档。

【问题讨论】:

    标签: google-bigquery


    【解决方案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 环境变量中查找凭据。

    【讨论】:

    • 您好,感谢您的回复。我之前尝试了上述步骤,但问题是 datasetinfo 对象总是返回 null,这就是我无法继续执行此操作的原因。 BigQuery bigQuery = BigQueryOptions.getDefaultInstance().getService(); DatasetId datasetId = DatasetId.of("fccr"); DatasetInfo datasetInfo = Dataset.of(datasetId);
    • 您可能错误地实例化了您的 dataset 对象。请查看我的编辑并确保您使用正确的凭据并在 DatasetId.of("YOUR_DATASET_NAME") 中指定有效的数据集名称。
    • 我很高兴能帮上忙!如果答案对您有用,请考虑accepting and/or upvoting我的答案,以便社区看到它解决了您的问题。谢谢!
    • 嗨@dsesto 我有另一个问题,如果你能帮助那里stackoverflow.com/questions/50820987/…真的很抱歉给您带来麻烦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多