基本ロールと権限

概要

BigQuery は、プロジェクト レベルのアクセスを許可するため、Cloud IAM の基本ロールをサポートしています。

BigQuery には、Cloud Identity and Access Management の導入前からデータセット レベルに適用される基本ロールが存在しています。代わりに、事前定義の Cloud IAM ロールを使用することをおすすめします。

プロジェクトに対する基本ロール

デフォルトでは、プロジェクトへのアクセス権限を付与すると、その中のデータセットにもアクセス権が付与されます。デフォルトのアクセス権限はデータセット単位でオーバーライドできます。プロジェクトの Owner ロールを持つユーザーは、任意のプロジェクト ロールを取り消しまたは変更できます。

プロジェクトが作成されると、BigQuery はプロジェクト作成者に Owner のロールを与えます。

基本ロール 可能な操作
Viewer
  • プロジェクトでジョブを開始できます。ジョブの種類によっては、データセットのロールが追加で必要になります。
  • すべてのジョブを一覧表示して取得し、プロジェクトに対して開始したジョブを更新できます。
  • 閲覧者が含まれるプロジェクトにデータセットを作成すると、BigQuery によって、新しいデータセット用の事前定義ロール bigquery.dataViewer がそれらのユーザーに付与されます。
Editor
  • Viewer で可能な操作に加えて、次の操作が可能です。
    • プロジェクトで新しいデータセットを作成できます。
    • 編集者が含まれるプロジェクトにデータセットを作成すると、BigQuery によって、新しいデータセット用の事前定義ロール bigquery.dataEditor がそれらのユーザーに付与されます。
Owner
  • Editor で可能な操作に加えて、次の操作が可能です。
    • プロジェクトのすべてのデータセットを一覧表示できます。
    • プロジェクトの任意のデータセットを削除できます。
    • プロジェクトで実行されているすべてのジョブ(他のプロジェクト ユーザーによって実行されたジョブを含む)を一覧表示し、それらのジョブを取得できます。
    • データセットを作成すると、BigQuery によって、新しいデータセット用の定義済みのロール bigquery.dataOwner がすべてのプロジェクト オーナーに付与されます。

      例外: ユーザーがクエリを実行すると、キャッシュに保存される結果テーブルを格納するために匿名データセットが作成されます。クエリを実行するユーザーにのみ、匿名データセットに対する OWNER アクセス権が付与されます。

プロジェクトに対する基本のロールは Google Cloud Console を使用して付与または取り消します。新しいプロジェクト ロールの付与や取り消しを行うには、プロジェクトに対する Owner アクセス権が必要です。

プロジェクトへのアクセス権の付与とその取り消しについては、Cloud Identity and Access Management ドキュメントのリソースへのアクセス権の付与、変更、取り消しをご覧ください。

データセットに対する基本ロール

以下の基本ロールはデータセット レベルで適用されます。

データセット ロール 可能な操作
READER
  • データセットのテーブルの読み取り、クエリ、コピー、エクスポートを行えます。データセット内のルーティンを読み取ることも可能です。
    • データセットで get を呼び出すことができます。
    • データセット内のテーブルで getlist を呼び出すことができます。
    • データセット内のルーティンで getlist を呼び出すことができます。
    • データセット内のテーブルのテーブルデータで list を呼び出すことができます。
  • bigquery.dataViewer 事前定義ロールにマッピングされます。
WRITER
  • READER で可能な操作に加えて、次の操作が可能です。
    • データセットのデータを編集または追加できます。
      • テーブルで insertinsertAllupdatedelete を呼び出すことができます。
      • データセット内のテーブルを、ジョブの読み込み、コピー、クエリの実行先として使用できます。
      • ルーティンで insertupdatedelete を呼び出すことができます。
  • bigquery.dataEditor 事前定義ロールにマッピングされます。
OWNER
  • WRITER で可能な操作に加えて、次の操作が可能です。
    • データセットで update を呼び出すことができます。
    • データセットで delete を呼び出すことができます。
  • bigquery.dataOwner 事前定義ロールにマッピングされます。

注: データセットには、OWNER ロールを持つエンティティが少なくとも 1 つ必要です。OWNER ロールを持つユーザーは自分の OWNER ロールを削除できません。

データセット レベルでロールを割り当てる方法について詳しくは、データセットへのアクセスの制御をご覧ください。

新しいデータセットを作成すると、BigQuery によってデフォルトのデータセット アクセス権限が次のエンティティに追加されます。データセットの作成時にロールを指定すると、デフォルトの値がオーバーライドされます。

エンティティ データセット ロール
プロジェクトに対する Viewer アクセス権限を持つすべてのユーザー READER
プロジェクトに対する Editor アクセス権限を持つすべてのユーザー WRITER
プロジェクトに対する Owner アクセス権限を持つすべてのユーザー

OWNER

例外: ユーザーがクエリを実行すると、キャッシュに保存される結果テーブルを格納するために匿名データセットが作成されます。クエリを実行するユーザーにのみ、匿名データセットに対する OWNER アクセス権が付与されます。