BigQuery API V2(Java)を使用して、
BigQueryテーブルのアクセス許可をテストする方法についてご紹介します。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[BigQuery API(V2)] JavaでBigQueryを使う
を参照ください。
No | 目次 | ||
---|---|---|---|
1 | アクセス許可をテスト | ||
1 | スコープ | ||
2 | 実行 | ||
3 | レスポンスの内容 | ||
4 | IAM権限 | ||
1 | BigQueryの権限 | ||
2 | BigQueryMLタスクの権限 |
1. アクセス許可をテスト
指定したテーブルのアクセス許可をテストします。
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
BigqueryScopes.BIGQUERY
BigqueryScopes.CLOUD_PLATFORM
BigqueryScopes.CLOUD_PLATFORM_READ_ONLY
https://www.googleapis.com/auth/bigquery.readonly
⧉[BigQuery API(V2)] JavaでBigQueryを使う(3.2. BigQueryインスタンスを取得)
でスコープを指定してください。
1.2. 実行
public static void main(String[] args) throws Exception{
Bigquery bigquery = getBigquery();
Bigquery.Tables tables = bigquery.tables();
String resource = String.format("projects/%s/datasets/%s/tables/%s",
"プロジェクトID","データセットID","テーブルID");
TestIamPermissionsRequest content = new TestIamPermissionsRequest();
content.setPermissions(Arrays.asList("bigquery.tables.getIamPolicy"));
Bigquery.Tables.TestIamPermissions permission = tables.testIamPermissions(resource,content);
TestIamPermissionsResponse res = permission.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
POST: https://bigquery.googleapis.com/bigquery/v2/projects/{プロジェクトID}/datasets/{データセットID}/tables/{テーブルID}:testIamPermissions
が実行されます。
1.2.2. クエリパラメータ
クエリパラメータはありません。
1.2.3. リクエストボディ
TestIamPermissionsRequestメソッドにより、リクエストボディを追加できます。
メソッド | 引数 | 説明 |
---|---|---|
setPermissions | List<String> | チェックするためのIAM権限 |
1.3. レスポンスの内容
TestIamPermissionsResponse
メソッド | 戻り値 | 説明 |
---|---|---|
getPermissions | List<String> | 許可されたIAM権限 |
1.4. IAM権限
1.4.1. BigQueryの権限
権限 | 説明 |
---|---|
bigquery.bireservations.get | BI Engine の予約を読み取ります |
bigquery.bireservations.update | BI Engine の予約を更新します |
bigquery.capacityCommitments.create | プロジェクトに容量コミットメントを作成します |
bigquery.capacityCommitments.delete | 容量コミットメントを削除します |
bigquery.capacityCommitments.get | 容量コミットメントに関する詳細を取得します |
bigquery.capacityCommitments.list | プロジェクト内の容量コミットメントすべてを一覧表示します |
bigquery.capacityCommitments.update | プロジェクト内の容量コミットメントすべてを更新します |
bigquery.config.update | 構成を作成します |
bigquery.config.get | 構成の詳細を取得します |
bigquery.connections.create | プロジェクト内で新しい接続を作成します |
bigquery.connections.delete | 接続を削除します |
bigquery.connections.get | 接続のメタデータを取得します。認証情報は除外されます |
bigquery.connections.list | プロジェクト内の接続を一覧表示します |
bigquery.connections.update | 接続とその認証情報を更新します |
bigquery.connections.updateTag | 接続のタグを更新します |
bigquery.connections.use | 接続構成を使用して、リモート データソースに接続します |
bigquery.connections.delegate | 承認済みの外部テーブルとリモート関数を作成するために接続を委任します |
bigquery.dataPolicies.create | 新しいデータポリシーを作成します |
bigquery.dataPolicies.delete | データポリシーを削除します |
bigquery.dataPolicies.get | データポリシーに関するメタデータを取得します |
bigquery.dataPolicies.getIamPolicy | データポリシーの IAM 権限を読み取ります |
bigquery.dataPolicies.list | プロジェクト内のデータポリシーを一覧表示します |
bigquery.dataPolicies.maskedGet | データポリシーに関連付けられたポリシータグを持つ列のマスクされたデータを表示します |
bigquery.dataPolicies.setIamPolicy | データポリシーの IAM 権限を設定します |
bigquery.dataPolicies.update | データポリシーのメタデータを更新します |
bigquery.datasets.create | 新しい空白のデータセットを作成します |
bigquery.datasets.createTagBinding | データセットにリソースタグ バインディングを作成します |
bigquery.datasets.delete | データセットを削除します |
bigquery.datasets.deleteTagBinding | データセットのリソースタグ バインディングを削除します |
bigquery.datasets.get | データセットに関するメタデータと権限を取得します |
bigquery.datasets.getIamPolicy | Google Cloud コンソールでデータセットの IAM 権限を取得するオプションをユーザーに提供するために必要です |
bigquery.datasets.link | リンクされたデータセットを作成します |
bigquery.datasets.listTagBindings | データセットのリソースタグ バインディングを一覧表示します |
bigquery.datasets.setIamPolicy | Google Cloud コンソールでデータセットの IAM 権限を設定するオプションをユーザーに提供するために必要です |
bigquery.datasets.update | データセットのメタデータと権限を更新します |
bigquery.datasets.updateTag | データセットの Data Catalog タグを更新します |
bigquery.jobs.create | プロジェクト内でジョブ(クエリを含む)を実行します |
bigquery.jobs.get | ジョブのデータとメタデータを取得します |
bigquery.jobs.list | すべてのジョブを一覧表示し、任意のユーザーが送信した任意のジョブのメタデータを取得します |
bigquery.jobs.listAll | すべてのジョブを一覧表示し、任意のユーザーが送信した任意のジョブのメタデータを取得します |
bigquery.jobs.listExecutionMetadata | ユーザーが送信したジョブに関するすべてのジョブ実行メタデータを一覧表示します |
bigquery.jobs.delete | ジョブのメタデータを削除します |
bigquery.jobs.update | ジョブをキャンセルします |
bigquery.models.create | 新しいML モデルを作成します |
bigquery.models.delete | ML モデルを削除します |
bigquery.models.getData | ML モデルのデータを取得します |
bigquery.models.getMetadata | ML モデルのメタデータを取得します |
bigquery.models.list | ML モデルとモデルのメタデータを一覧表示します |
bigquery.models.updateData | ML モデルのデータを更新します |
bigquery.models.updateMetadata | ML モデルのメタデータを更新します |
bigquery.models.export | ML モデルをエクスポートします |
bigquery.models.updateTag | モデルの Data Catalog タグを更新します |
bigquery.readsessions.create | Storage Read API を使用して新しい読み取りセッションを作成します |
bigquery.readsessions.getData | Storage Read API を使用して読み取りセッションからデータを読み取ります |
bigquery.readsessions.update | Storage Read API を使用して読み取りセッションを更新します |
bigquery.reservations.create | 管理プロジェクトでスロット予約を作成します |
bigquery.reservations.delete | スロット予約を削除します |
bigquery.reservations.get | スロット予約の詳細を取得します |
bigquery.reservations.list | 管理プロジェクト内のすべてのスロット予約を一覧表示します |
bigquery.reservations.update | スロット予約のプロパティを更新します |
bigquery.reservationAssignments.create | 予約割り当てを作成します |
bigquery.reservationAssignments.delete | 予約割り当てを削除します |
bigquery.reservationAssignments.list | プロジェクト内の予約割り当てすべてを一覧表示します |
bigquery.reservationAssignments.search | 特定のプロジェクト、フォルダ、または組織の予約割り当てを見つけます |
bigquery.rowAccessPolicies.create | テーブルに新しい行レベルのアクセス ポリシーを作成します |
bigquery.rowAccessPolicies.delete | テーブルから行レベルのアクセス ポリシーを削除します |
bigquery.rowAccessPolicies.getFilteredData | テーブルから、行レベルアクセス ポリシーの権限譲受人リストにあるプリンシパルにのみ表示するデータを取得します |
bigquery.rowAccessPolicies.list | テーブルのすべての行レベルのアクセス ポリシーを表示します |
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions | 行レベルのアクセス ポリシーがある、または以前に存在していたテーブルの過去のデータにアクセスします |
bigquery.rowAccessPolicies.getIamPolicy | 行アクセス ポリシーの IAM 権限を取得します |
bigquery.rowAccessPolicies.setIamPolicy | 行アクセス ポリシーの IAM 権限を設定します |
bigquery.rowAccessPolicies.update | 行レベルのアクセス ポリシーを再作成します |
bigquery.routines.create | 新しいルーティン(関数とストアド プロシージャ)を作成します |
bigquery.routines.delete | ルーティンを削除します |
bigquery.routines.get | ルーティンの定義とメタデータを取得します |
bigquery.routines.list | ルーティンおよびルーティンのメタデータを一覧表示します |
bigquery.routines.update | ルーティンの定義とメタデータを更新します |
bigquery.routines.updateTag | ルーティンの Data Catalog タグを更新します |
bigquery.savedqueries.create | 保存したクエリを作成します |
bigquery.savedqueries.delete | 保存したクエリを削除します |
bigquery.savedqueries.get | 保存したクエリのメタデータを取得します |
bigquery.savedqueries.list | 保存したクエリの一覧を表示します |
bigquery.savedqueries.update | 保存したクエリを更新します |
bigquery.tables.create | 新しいテーブルを作成します |
bigquery.tables.createIndex | テーブルの検索インデックスを作成します |
bigquery.tables.createSnapshot | 新しいテーブル スナップショットを作成します |
bigquery.tables.createTagBinding | テーブルにリソースタグ バインディングを作成します |
bigquery.tables.delete | テーブルを削除します |
bigquery.tables.deleteIndex | テーブルの検索インデックスを削除します |
bigquery.tables.deleteSnapshot | テーブル スナップショットを削除します |
bigquery.tables.deleteTagBinding | テーブルのリソースタグ バインディングを削除します |
bigquery.tables.export | BigQuery からテーブルのデータをエクスポートします |
bigquery.tables.get | テーブルのメタデータを取得します |
bigquery.tables.getData | テーブルのデータを取得します |
bigquery.tables.getIamPolicy | テーブルの IAM ポリシーを読み取ります |
bigquery.tables.list | テーブルとテーブルのメタデータを一覧表示します |
bigquery.tables.replicateData | テーブルデータを複製します |
bigquery.tables.restoreSnapshot | テーブル スナップショットを復元します |
bigquery.tables.setCategory | テーブル スキーマにポリシータグを設定します |
bigquery.tables.setIamPolicy | テーブルの IAM ポリシーを変更します |
bigquery.tables.update | テーブルのメタデータを更新します |
bigquery.tables.updateData | テーブルのデータを更新します |
bigquery.tables.updateTag | テーブルの Data Catalog タグを更新します |
bigquery.transfers.get | 転送のメタデータを取得します |
bigquery.transfers.update | 転送を作成、更新、削除します |
1.4.2. BigQueryMLタスクの権限
権限 | 説明 |
---|---|
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData |
CREATE MODEL ステートメントを使用して新しいモデルを作成する |
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData bigquery.models.updateMetadata |
CREATE OR REPLACE MODEL ステートメントを使用して既存のモデルを置き換える |
bigquery.models.delete | models.delete API を使用してモデルを削除する |
bigquery.jobs.create bigquery.models.delete |
DROP MODEL ステートメントを使用してモデルを削除する |
bigquery.models.getMetadata | models.get API を使用してモデル メタデータを取得する |
bigquery.models.list | models.list API を使用してモデルとそのメタデータを一覧表示する |
bigquery.models.updateMetadata | models.delete API を使用してモデル メタデータを更新する |
bigquery.jobs.create bigquery.models.getData |
ML.EVALUATE、ML.PREDICT、ML.TRAINING_INFO、ML.WEIGHTS などの関数を使用して、評価、予測、モデル、特徴の検査を行う |
bigquery.jobs.create bigquery.models.export |
モデルをエクスポートする |
bigquery.models.updateTag | モデルの Data Catalog タグを更新する |
おしまい。。