これなに
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文の発行