MySQL ユーザーを作成、管理する

ここでは、デフォルト ユーザー アカウントを構成する方法と、Cloud SQL インスタンスの他のユーザー アカウントを作成、削除、更新する方法を説明します。

Cloud SQL でのユーザーの詳細については、MySQL ユーザーをご覧ください。

始める前に

ここで説明するタスクの前に、Cloud SQL インスタンスを作成しておく必要があります。詳細については、インスタンスの作成をご覧ください。

データベースの管理クライアントを使用してユーザーを管理する予定の場合、次を構成しておく必要があります。

デフォルト ユーザー アカウントを構成する

新しい Cloud SQL インスタンスを作成する場合、インスタンスに接続するには、デフォルト ユーザー アカウントを構成しておく必要があります。

Cloud SQL for MySQL では、デフォルト ユーザーは root です。

デフォルト ユーザーを構成するには:

Console(第 2 世代)

  1. Google Cloud Platform Console で Cloud SQL インスタンス ページに移動します。

    [Cloud SQL インスタンス] ページに移動

  2. インスタンスをクリックして [概要] ページを開きます。
  3. [ユーザー] タブを選択します。
  4. ホスト値が % (any host)root ユーザーを見つけ、[その他の操作] アイコン([その他の操作] アイコン)で [パスワードを変更] を選択します。
  5. 覚えやすく安全性の高いパスワードを指定し、[OK] をクリックします。

Console(第 1 世代)

  1. Google Cloud Platform Console で Cloud SQL インスタンス ページに移動します。

    [Cloud SQL インスタンス] ページに移動

  2. 第 1 世代インスタンスをクリックして、[概要] ページを開きます。
  3. [ユーザー] タブを選択します。
  4. ユーザー名が root でホスト名が %(any host) のユーザーがユーザーリストにすでに表示されている場合は、root ユーザーを作成する必要はありません。

    パスワードをリセットするには、[その他の操作] メニュー([その他の操作] アイコン)で [パスワードを変更] を選択します。

  5. それ以外の場合は、[ユーザー アカウントを作成] をクリックします。
  6. [ユーザー アカウントを作成] ダイアログで、ユーザー名として「root」を入力し、root の覚えやすい安全なパスワードを入力します。ホスト名の設定は [Allow any host(%)] のままにします。
  7. [作成] をクリックします。

gcloud

デフォルト ユーザーのパスワードを設定します。

gcloud sql users set-password root \
    --host=% --instance=[INSTANCE_NAME] --prompt-for-password

cURL

次のリクエストは、users:update メソッドを使用して root ユーザー アカウント('root'@'%')を更新します。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "root", "password": "[PASSWORD]"}' \
     -X PUT \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=root&host=%25'

ユーザーを作成する

ユーザーを作成するには:

Console

  1. Google Cloud Platform Console で Cloud SQL インスタンス ページに移動します。

    [Cloud SQL インスタンス] ページに移動

  2. インスタンスを選択して [概要] ページを開きます。
  3. [ユーザー] タブを選択します。
  4. [ユーザー アカウントを作成] をクリックします。
  5. [ユーザー アカウントの作成] ダイアログで以下を指定します。
    • ユーザー名
    • パスワード
    • ホスト(オプション)

      デフォルトは '%' です。これは、ホストリストが制限されていないことを意味します。IP アドレスまたは IP アドレスの範囲を指定することもできます。この場合、これらのアドレスから接続しているユーザーだけがデータベースにアクセスできます。

  6. [作成] をクリックします。

Cloud SQL で作成されたユーザーには、FILESUPER を除くすべての権限があります。ユーザーの権限を変更する必要がある場合は、mysql クライアントで GRANT または REVOKE コマンドを使用します。

gcloud

ユーザーを作成します。

gcloud sql users create [USER_NAME] \
   --host=[HOST] --instance=[INSTANCE_NAME] --password=[PASSWORD]

Cloud SQL で作成されたユーザーには、FILESUPER を除くすべての権限があります。ユーザーの権限を変更する必要がある場合は、mysql クライアントで GRANT または REVOKE コマンドを使用します。

cURL

次のリクエストは、users:insert メソッドを使用してユーザー アカウント 'user_name'@'%' を作成します。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"host": "%", "name": "[USER_NAME]", "password": "[PASSWORD]"}' \
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users

Cloud SQL で作成されたユーザーには、FILESUPER を除くすべての権限があります。ユーザーの権限を変更する必要がある場合は、mysql クライアントで GRANT または REVOKE コマンドを使用します。

MySQL クライアント

  1. mysql プロンプトで、ユーザーを作成します。
    CREATE USER '[USER_NAME]'@'%' IDENTIFIED BY '[PASSWORD]';
    
  2. ユーザー テーブルを表示することによって、ユーザーの作成を確認できます。
    SELECT user, host FROM mysql.user;
    
    第 2 世代インスタンスの場合、出力は次の例のようになります。
    +----------+-----------+
    | user     | host      |
    +----------+-----------+
    | root     | %         |
    | newuser  | %         |
    +----------+-----------+
    1 row in set (0.01 sec)
    
  3. GRANT ステートメントでユーザーに権限を付与します。詳細については、MySQL によって提供される権限をご覧ください。
  4. mysql.user テーブルをフラッシュして、変更が反映されていることを確認します。
    FLUSH TABLES mysql.user;
    

ユーザーのパスワードを変更する

ユーザーのパスワードを変更するには:

Console

  1. Google Cloud Platform Console で Cloud SQL インスタンス ページに移動します。

    [Cloud SQL インスタンス] ページに移動

  2. インスタンスを選択して [概要] ページを開きます。
  3. [アクセス制御] > [ユーザー] を選択します。
  4. 更新するユーザーの [その他の操作]([その他の操作] アイコン)をクリックします。
  5. [パスワードを変更] を選択し、新しいパスワードを指定して [OK] をクリックします。

gcloud

パスワードを更新します。

gcloud sql users set-password [USER_NAME] \
   --host=[HOST] --instance=[INSTANCE_NAME] --prompt-for-password

cURL

次のリクエストは、users:update メソッドを使用して、ユーザー アカウント user_name'@'%' のパスワードを更新します。ユーザーに異なるホストがある場合は、呼び出しを正しいホストに変更する必要があります。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "[USER_NAME]", "host": "%", "password": "[PASSWORD]"}' \
     -X PUT \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=[USER_NAME]&host=%25'

MySQL クライアント

  1. mysql プロンプトで、パスワードを変更します。
    SET PASSWORD FOR [USER] = PASSWORD('auth_string');
    
  2. mysql.user テーブルをフラッシュして、変更が反映されていることを確認します。
    FLUSH TABLES mysql.user;
    

ユーザーを更新する

ホストや権限などのユーザー プロパティを更新するには、mysql クライアントを使用する必要があります。詳細については、MySQL のドキュメントの MySQL ユーザー アカウント管理をご覧ください。

ユーザーの一覧を表示する

ユーザーを一覧表示するには:

Console

  1. Google Cloud Platform Console で Cloud SQL インスタンス ページに移動します。

    [Cloud SQL インスタンス] ページに移動

  2. インスタンスを選択して [概要] ページを開きます。
  3. [アクセス制御] > [ユーザー] を選択します。

gcloud

このインスタンスのユーザーを一覧表示します。

gcloud sql users list --instance=[INSTANCE_NAME]

このコマンドのパラメータの完全なリストについては、gcloud sql users list のリファレンス ページをご覧ください。

cURL

以下のリクエストは、users:list メソッドを使用してインスタンスに定義されているユーザーを一覧表示します。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users

MySQL クライアント

mysql のプロンプトで、MySQL ユーザーを一覧表示します。

SELECT user, host FROM mysql.user;

root ユーザー アカウントのみが設定されている第 2 世代インスタンスの場合、出力は次の例のようになります。

+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
+------+-----------+
1 row in set (0.01 sec)

この例では、ユーザー 'root'@'%' を追加したインスタンスのユーザーが示されています。パスワード フィールドには、パスワードのハッシュが表示されています。

ユーザーを削除する

ユーザーを削除するには:

Console

  1. Google Cloud Platform Console で Cloud SQL インスタンス ページに移動します。

    [Cloud SQL インスタンス] ページに移動

  2. インスタンスを選択して [概要] ページを開きます。
  3. [アクセス制御] > [ユーザー] を選択します。
  4. 削除するユーザーの [その他の操作]([その他の操作] アイコン)をクリックします。
  5. [削除] を選択して、[OK] をクリックします。

gcloud

ユーザーを削除します。

gcloud sql users delete [USER_NAME] --host=[HOST] --instance=[INSTANCE_NAME]

cURL

次のリクエストは、users:delete メソッドを使用して、ユーザー アカウント user_name'@'%' を削除します。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "[USER_NAME]", "host": "%"}' \
     -X DELETE \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?host=%25&name=[USER_NAME]'

MySQL クライアント

  1. mysql プロンプトで、ユーザーを削除します。
    DROP USER '[USER_NAME]'@'[HOST_NAME]';
    

    DROP USER ステートメントの詳細については、MySQL のドキュメントをご覧ください。

  2. mysql.user テーブルをフラッシュして、変更が反映されていることを確認します。
    FLUSH TABLES mysql.user;
    

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...