Cloud SQL Studio を使用してデータを管理する

このページでは、Google Cloud コンソールで Cloud SQL Studio を使用し、Cloud SQL データの探索と管理を行う方法について説明します。

Cloud SQL Studio を使用すると、承認済みユーザーは SQL データベースを直接操作し、Google Cloud コンソールから SQL クエリを実行してデータにアクセスして操作できます。テーブルとインデックスの作成、テーブルの変更、ビューの設定など、SQL コマンドライン クライアントで行うさまざまなアクションを実行できます。

Cloud SQL Studio には [エクスプローラ] ペインがあり、クエリエディタと SQL クエリ結果テーブルが統合されています。このインターフェースから DDL、DML、DQL ステートメントを実行できます。たとえば、サードパーティのデータベース クエリツールを構成する代わりに、Cloud SQL Studio のクエリエディタでテーブルを作成し、データに対するクエリを実行できます。

[エクスプローラ] ペインを使用して、データベース オブジェクトを表示し、操作できます。次のようなデータベース オブジェクトの作成、変更、削除を行います。

  • テーブル
  • インデックスとキー
  • 関数

また、[エクスプローラ] ペインを使用して、テーブルの SELECT クエリをシードすることもできます。

Cloud SQL を初めて使用する場合は、Cloud SQL の概要をご覧ください。

必要なロールと権限

このドキュメントのタスクを完了するのに必要な権限を取得するには、プロジェクトに対する Cloud SQL Studio ユーザー roles/cloudsql.studioUser)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Cloud SQL Studio を使用するには、次の権限が必要です。

  • cloudsql.databases.list
  • cloudsql.instances.executeSql
  • cloudsql.instances.get
  • cloudsql.instances.login(IAM データベース認証を使用している場合にのみ必要)
  • cloudsql.users.list

また、認証に使用するデータベースに対するデータベース レベルの権限と、使用する特権データベース ユーザーのパスワードが必要です。

Cloud SQL Studio で認証する

Cloud SQL Studio でデータベースにアクセスするには、まずデータベース認証方法を選択する必要があります。Cloud SQL Studio を使用してデータベースにログインするには、次のいずれかの認証を使用します。

  • IAM データベース認証。このタイプの認証を使用すると、追加のパスワードを管理しなくても、データベースと Cloud SQL Studio にログインできます。IAM グループ認証を利用して、組織内の複数のユーザーのデータベース アクセスと権限を同時に管理することもできます。

  • 組み込みデータベース認証。Cloud SQL Studio でデータベースに接続するには、MySQL ユーザー アカウントと認証情報を使用します。

データを探す

[エクスプローラ] ペインにアクセスする手順は、次のとおりです。

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. リストからインスタンスを選択します。
  3. ナビゲーション メニューで [Cloud SQL Studio] をクリックします。
  4. データベースの名前、ユーザー名、パスワードを使用して Cloud SQL Studio にログインします。[エクスプローラ] ペインに、データベースにあるオブジェクトのリストが表示されます。

データの作成、変更、クエリ

SQL エディタを使用すると、DDL、DML、DQL ステートメントの組み合わせを実行できます。自分でクエリを作成することも、エクスプローラを使用してクエリエディタにテンプレートを入力することもできます。

データの構造化、修正、クエリ実行を行う手順は、次のとおりです。

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. リストからインスタンスを選択します。
  3. ナビゲーション メニューで [Cloud SQL Studio] をクリックします。
  4. データベースの名前、ユーザー名、パスワードを使用して Cloud SQL Studio にログインします。
  5. 次のいずれかの方法でクエリを作成します。
    • 独自のクエリを作成する手順は次のとおりです。
      1. をクリックして新しいタブを開きます。
      2. クエリエディタが表示されたら、クエリを入力します。
    • テンプレートからクエリを作成する手順は次のとおりです。
      1. [エクスプローラ] ペインで、データベース オブジェクトまたはコレクションの横にあるアクションを表示アイコン more_vert をクリックします。可能な操作が 1 つ以上表示されます。
      2. アクションをクリックします。クエリエディタにテンプレートが入力されます。
      3. テンプレート内のプレースホルダをすべて置き換えます。
  6. 次のいずれかの方法でクエリを実行します。
    • クエリエディタ内のすべてのステートメントを実行するには、[実行] をクリックします。
    • 特定のステートメントを実行するには、1 つまたは複数のステートメントを選択して、[選択項目を実行] をクリックします。
  7. クエリの結果は [結果] タブに表示されます。複数の結果セットがある場合は、[すべての結果] プルダウン リストから結果を選択します。

制限事項

  • Cloud SQL Studio は軽量のクエリをサポートしています。レスポンスが 10 MB を超えると、切り捨てられる場合があります。その場合、部分的な結果が返されたことが Cloud SQL Studio に表示されます。
  • クエリは、実行中の Cloud SQL インスタンスに対してのみ実行できます。
  • Cloud SQL Studio は外部サーバーをサポートしていません。
  • 5 分以上かかるリクエストはキャンセルされます。Cloud SQL for MySQL 5.6 と 5.7 では、長時間実行される DDL ステートメントがタイムアウトすると、安全にロールバックできない孤立したファイルやテーブルが発生する可能性があります。大きなテーブルに対して ALTER TABLE のようなクエリを使用する場合は注意が必要です。
  • SQL スクリプトの実行が完了した後、Cloud SQL Studio はデータベース接続を維持しません。同様に、エディタタブでは共通のセッションが共有されません。実行のたびに新しいセッションが開始されます。
  • DML、DQL、DDL ステートメントを組み合わせて実行すると、DQL クエリの結果のみが表示されます。
  • ブラウザまたはブラウザタブを閉じても、Cloud SQL Studio でクエリの実行は停止しません。クエリは、完了するかタイムアウトするまで実行されます。
  • Cloud SQL Studio では、BLOB データに対する SELECT クエリの実行はサポートされていません。SQL スクリプトが出力に BLOB 列を生成する場合、SQL スクリプトはエラーで失敗します。
  • Cloud SQL for MySQL クライアント コマンドはサポートされておらず、Cloud SQL Studio で実行できません。
  • root ユーザーは Cloud SQL Studio ではサポートされていません。
  • Cloud SQL for MySQL では接続にデータベースは不要ですが、Cloud SQL Studio では常にデータベースが必要です。
  • パスワードが空のユーザーは、Cloud SQL Studio ではサポートされていません。
  • USE database は、アクティブなクエリ実行に対してのみステートフルであり、gcloud CLI と同じようには機能しません。
  • データベース ユーザーには、localhost から接続する権限が必要です。
  • 複数のクエリを実行し、そのうちの 1 つが失敗した場合は、最初に発生したエラーが返されます。エラーが発生する前にバッチ内の一部のステートメントが正常に処理されている可能性があります。この問題を回避するには、複数のクエリを transaction ステートメントでラップします。

    START TRANSACTION;
        YOUR_SQL_STATEMENTS
    COMMIT;
    

    次のように置き換えます。

    • YOUR_SQL_STATEMENTS: このクエリの一部として実行するステートメント