【问题标题】:Using BigQuery row-level security with service account将 BigQuery 行级安全性与服务帐号结合使用
【发布时间】:2021-08-31 19:25:24
【问题描述】:

我正在尝试为 BigQuery 表设置行级安全性,以供服务帐号访问。但是,当服务帐户查询表时,结果为空且没有错误消息。

  • ROW ACCESS POLICY 授予usergroup 并查询返回预期的过滤结果。
  • 删除ROW ACCESS POLICY 时,服务帐号可以访问整个结果,因此这不是另一个访问问题。

查询复制测试表:

CREATE TABLE `<project>.<dataset>.planets` (name String, largest_moon String, has_aliens Bool);

INSERT `<project>.<dataset>.planets` (name, largest_moon, has_aliens)
VALUES('mercury', null, false),
      ('venus', null, false),
      ('earth', 'moon', false),
      ('mars', 'phobos', true);

GRANT `roles/bigquery.filteredDataViewer`
ON TABLE `<project>.<dataset>.planets`
TO "serviceAccount:<account_name>@<project>.iam.gserviceaccount.com";

CREATE OR REPLACE ROW ACCESS POLICY aliens_filter
ON `<project>.<dataset>.planets`
GRANT TO ("serviceAccount:<account_name>@<project>.iam.gserviceaccount.com")
FILTER USING (has_aliens = false); 

【问题讨论】:

    标签: google-cloud-platform google-bigquery


    【解决方案1】:

    通过查看查询历史发现问题,服务使用了错误的服务帐户。由于该服务帐户不在受赠者列表中,因此返回的结果为空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 2022-07-14
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      相关资源
      最近更新 更多