Help us understand the problem. What is going on with this article?

[随時更新予定]ユースケース別Bigqueryの権限付与パターン

これなに

BQの権限付与で毎回どれつければいいんだっけ?となるのでこの機会にまとめてみることにした。
(ドキュメント読んでもよくわからないし。。。)
※以下は全て手作業で確認してるので、もしかしたら漏れがあるかもしれません。ご容赦ください

case1: 特定のデータセットだけ閲覧・検索させたい

これが一番よくあるパターンだと思う。
特にBQはテーブル単位で権限が付与できないので共有用のデータセットを作ってそこに見せたいテーブルのviewを作るということがあるが、viewテーブルの場合のみ承認済みビューを登録するという一手間が発生するので注意

設定方法

1. IAMで BigQuery ジョブユーザー を付与

2. 共有データセットで BigQuery データ閲覧者を付与

※(viewテーブルを許容したい時のみ必要) 作成したviewを承認済みviewに登録する
viewの元テーブルが格納されてるデータセットを押下し 共有データセット承認済みのビュー を選択し、viewを保存したデータセットとviewテーブルを選択。

こうなる

  • できること
    • 指定したデータセット配下テーブルのスキーマとプレビューの閲覧
    • 指定したデータセット配下テーブルへのselect文の発行
  • できないこと
    • 指定したデータセット以外へのアクセス
    • テーブルのスキーマの編集
    • SQLの結果をBQテーブルとして指定したデータセット配下へ保存(viewもNG)
    • insert,update,delete文の発行

case2: プロジェクト配下全てのテーブルを閲覧・検索させたい

BQ適当に見ていいけどデータの変更だけは間違ってもさせたくない時。
以下のできないことにも書いてるがSQLの結果をBQテーブルに保存ができないので、例えば
大容量のデータを一旦テーブルに書き出してからGCSにあげて落とすみたいなことは当然できない。

設定方法

・IAMで以下の権限をを付与
  ・BigQuery ジョブユーザー
  ・BigQuery データ閲覧者

こうなる

  • できること
    • プロジェクト配下のテーブルのスキーマとプレビューの閲覧
    • プロジェクト配下のテーブルへのselect文の発行
  • できないこと
    • テーブルのスキーマの編集
    • SQLの結果をBQテーブルとしてへ保存(viewもNG)
    • insert,update,delete文の発行
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away