このページでは、きめ細かいアクセス制御ユーザーが Spanner データベースにアクセスする方法について説明します。
詳細なアクセス制御については、詳細なアクセス制御についてをご覧ください。
きめ細かいアクセス制御ユーザーは、SQL ステートメントとクエリの実行、データベースでの行オペレーションの実行に使用するデータベース ロールを選択する必要があります。ロールの選択は、ロールを変更するまでセッション全体を通じて維持されます。
クエリ、DML、または行オペレーションを送信すると、Spanner は次のルールを使用して承認をチェックします。
- Google Cloud コンソール
Spanner はまず、データベース レベルの IAM 権限があるかどうかを確認します。その場合、Google Cloud コンソールにはデータベースのロール セレクタが表示されず、セッションはデータベース レベルの権限に進みます。
きめ細かいアクセス制御権限のみがあり、IAM データベース レベルの権限がない場合は、
spanner_sys_reader
システムロールか、そのメンバーのロールのいずれかへのアクセス権が付与されている必要があります。Google Cloud コンソールのセッションが必要な権限で続行されるように、データベースの [概要] ページでロールを選択します。
- Google Cloud SDK
クエリ、DML、または行オペレーションを送信するときにデータベース ロールを指定すると、Spanner はきめ細かいアクセス制御権限を確認します。チェックが失敗した場合、Spanner はデータベース レベルの IAM 権限をチェックせず、オペレーションは失敗します。
データベース ロールを指定しない場合、Spanner はデータベース レベルの IAM 権限をチェックし、チェックが成功した場合、セッションはデータベース レベルの権限に進みます。
Spanner データベースにアクセスするときにデータベース ロールを指定するには、次のメソッドを使用します。
Console
データベースを選択し、データベースの [概要] ページで [現在のロール] フィールドの横にある [データベースのロールの変更](鉛筆)アイコンをクリックします。
デフォルトでは、きめ細かいアクセス制御ユーザーがログインすると、このフィールドの値は
public
になります。public
システムロールの詳細については、細かいアクセス制御システムロールをご覧ください。[データベース ロールの変更] ダイアログで、使用可能なロールのリストから別のロールを選択します。
[更新] をクリックします。
[現在のロール] フィールドに、新しいロールが表示されます。
gcloud
次のように、
gcloud spanner databases execute-sql
コマンドに--database-role
オプションを追加します。gcloud spanner databases execute-sql DATABASE_NAME \ --instance=INSTANCE_NAME \ --sql="SELECT * from TABLE_NAME;" \ --database-role=ROLE_NAME
クライアント ライブラリ
C++
C#
Go
Java
Node.js
PHP
Python
Ruby