このページでは、Cloud SQL の組み込み認証を有効にして使用する方法について説明します。
概要については、Cloud SQL 組み込みデータベース認証をご覧ください。ユーザーを作成する前に
- Cloud SQL インスタンスを作成します。詳細については、インスタンスの作成をご覧ください。
- インスタンスのパスワード ポリシーを有効にします。詳細については、インスタンス パスワード ポリシーをご覧ください。
データベースの管理クライアントでユーザーを管理する場合は、次の操作を行います。
クライアントをインスタンスに接続します。外部アプリケーションの接続オプションをご覧ください。
パスワードを設定して、インスタンスのデフォルト ユーザーを構成します。デフォルトのユーザー アカウントのパスワードを設定するをご覧ください。
デフォルトのユーザー アカウントのパスワードを設定する
新しい Cloud SQL インスタンスを作成する場合は、インスタンスに接続する前に、デフォルトのユーザー アカウントのパスワードを設定する必要があります。
Cloud SQL for PostgreSQL の場合、デフォルトのユーザーはpostgres
です。コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
postgres
ユーザーを検索し、その他の操作メニュー から [パスワードを変更] を選択します。- 覚えやすく強力なパスワードを指定して、[OK] をクリックします。
gcloud
デフォルト ユーザーのパスワードを設定するには、次のように gcloud sql users set-password
コマンドを使用します。
コマンドを実行する前に、INSTANCE_NAME をインスタンス名に置き換えます。
gcloud sql users set-password postgres \ --instance=INSTANCE_NAME \ --prompt-for-password
REST v1
デフォルトのユーザー アカウントのパスワードを更新するには、users:update メソッドを指定して PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーのパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id
リクエストの本文(JSON):
{ "name": "user-id", "password": "password" }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "UPDATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
デフォルトのユーザー アカウントのパスワードを更新するには、users:update メソッドを指定して PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーのパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id
リクエストの本文(JSON):
{ "name": "user-id", "password": "password" }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "UPDATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
ユーザーを作成する
デフォルトのユーザー アカウントの設定が完了したら、他のユーザーを作成できます。
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
- [ユーザー アカウントを追加] をクリックします。
[ユーザー アカウントをインスタンス instance_name に追加] ページで、ユーザーが組み込みのデータベース メソッド(ユーザー名とパスワード)を使用して認証を行うか、IAM ユーザーとして認証を行うかを選択できます。
- [組み込み認証](デフォルト)を選択し、次の情報を追加します。
- ユーザー名
- 省略可。パスワード覚えやすく強力なパスワードを指定します。
- [追加] をクリックします。
Cloud SQL の認証方法を使用するインスタンス上に作成されたユーザーには、cloudsqlsuperuser
ロールが自動的に付与されます。このロールに関連付けられている権限は、CREATEROLE
、CREATEDB
、LOGIN
です。
これらのユーザーの属性を変更する必要がある場合は、psql
クライアントで ALTER ROLE コマンドを使用します。ALTER ROLE
で変更できない属性もあります。ただし、NOSUPERUSER
ロールと NOREPLICATION
ロールは例外です。
gcloud
ユーザーを作成するには、gcloud sql users create
コマンドを使用します。
次のように置き換えます。
- USER_NAME: ユーザー名。
- INSTANCE_NAME: インスタンスの名前。
- PASSWORD: ユーザーのパスワード。
gcloud sql users create USER_NAME \ --instance=INSTANCE_NAME \ --password=PASSWORD
Cloud SQL の認証方法を使用するインスタンス上に作成されたユーザーには、cloudsqlsuperuser
ロールが自動的に付与されます。このロールに関連付けられている権限は、CREATEROLE
、CREATEDB
、LOGIN
です。
これらのユーザーの属性を変更する必要がある場合は、psql
クライアントで ALTER ROLE コマンドを使用します。ALTER ROLE
で変更できない属性もあります。ただし、NOSUPERUSER
ロールと NOREPLICATION
ロールは例外です。
Cloud SQL のユーザー名の長さの上限は、オンプレミス PostgreSQL の場合と同じです。
ユーザーを作成するときに、ユーザー パスワード ポリシーのパラメータを追加できます。
Terraform
ユーザーを作成するには、Terraform リソースを使用します。
変更を適用する
Google Cloud プロジェクトで Terraform 構成を適用するには、次のセクションの手順を完了します。
Cloud Shell を準備する
- Cloud Shell を起動します。
-
Terraform 構成を適用するデフォルトの Google Cloud プロジェクトを設定します。
このコマンドは、プロジェクトごとに 1 回だけ実行する必要があります。これは任意のディレクトリで実行できます。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Terraform 構成ファイルに明示的な値を設定すると、環境変数がオーバーライドされます。
ディレクトリを準備する
Terraform 構成ファイルには独自のディレクトリ(ルート モジュールとも呼ばれます)が必要です。
-
Cloud Shell で、ディレクトリを作成し、そのディレクトリ内に新しいファイルを作成します。ファイル名の拡張子は
.tf
にする必要があります(例:main.tf
)。このチュートリアルでは、このファイルをmain.tf
とします。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
チュートリアルを使用している場合は、各セクションまたはステップのサンプルコードをコピーできます。
新しく作成した
main.tf
にサンプルコードをコピーします。必要に応じて、GitHub からコードをコピーします。Terraform スニペットがエンドツーエンドのソリューションの一部である場合は、この方法をおすすめします。
- 環境に適用するサンプル パラメータを確認し、変更します。
- 変更を保存します。
-
Terraform を初期化します。これは、ディレクトリごとに 1 回だけ行います。
terraform init
最新バージョンの Google プロバイダを使用する場合は、
-upgrade
オプションを使用します。terraform init -upgrade
変更を適用する
-
構成を確認して、Terraform が作成または更新するリソースが想定どおりであることを確認します。
terraform plan
必要に応じて構成を修正します。
- 次のコマンドを実行します。プロンプトで「
yes
」と入力して、Terraform 構成を適用します。terraform apply
Terraform に「Apply complete!」というメッセージが表示されるまで待ちます。
- Google Cloud プロジェクトを開いて結果を表示します。Google Cloud コンソールの UI でリソースに移動して、Terraform によって作成または更新されたことを確認します。
変更を削除する
変更を削除するには、次の操作を行います。
- 削除の保護を無効にするには、Terraform 構成ファイルで
deletion_protection
引数をfalse
に設定します。deletion_protection = "false"
- 次のコマンドを実行します。プロンプトで「
yes
」と入力して、更新された Terraform 構成を適用します。terraform apply
-
以前に Terraform 構成で適用されたリソースを削除するために、次のコマンドを実行してプロンプトで「
yes
」と入力します。terraform destroy
REST v1
ユーザーを作成するには、users:insert メソッドで POST リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーのパスワード
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
リクエストの本文(JSON):
{ "name": "user-id", "password": "password" }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:44:16.656Z", "startTime": "2020-02-07T22:44:16.686Z", "endTime": "2020-02-07T22:44:20.437Z", "operationType": "CREATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Cloud SQL の認証方法を使用するインスタンス上に作成されたユーザーには、cloudsqlsuperuser
ロールが自動的に付与されます。このロールに関連付けられている権限は、CREATEROLE
、CREATEDB
、LOGIN
です。
これらのユーザーの属性を変更する必要がある場合は、psql
クライアントで ALTER ROLE コマンドを使用します。ALTER ROLE
で変更できない属性もあります。ただし、NOSUPERUSER
ロールと NOREPLICATION
ロールは例外です。
Cloud SQL のユーザー名の長さの上限は、オンプレミス PostgreSQL の場合と同じです。
ユーザーを作成するときに、ユーザー パスワード ポリシーのパラメータを追加できます。
REST v1beta4
ユーザーを作成するには、users:insert メソッドで POST リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーのパスワード
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users
リクエストの本文(JSON):
{ "name": "user-id", "password": "password" }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:44:16.656Z", "startTime": "2020-02-07T22:44:16.686Z", "endTime": "2020-02-07T22:44:20.437Z", "operationType": "CREATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Cloud SQL の認証方法を使用するインスタンス上に作成されたユーザーには、cloudsqlsuperuser
ロールが自動的に付与されます。このロールに関連付けられている権限は、CREATEROLE
、CREATEDB
、LOGIN
です。
これらのユーザーの属性を変更する必要がある場合は、psql
クライアントで ALTER ROLE コマンドを使用します。ALTER ROLE
で変更できない属性もあります。ただし、NOSUPERUSER
ロールと NOREPLICATION
ロールは例外です。
Cloud SQL のユーザー名の長さの上限は、オンプレミス PostgreSQL の場合と同じです。
ユーザーを作成するときに、ユーザー パスワード ポリシーのパラメータを追加できます。
psql クライアント
psql
プロンプトで、ユーザーを作成します。CREATE USER USER_NAME WITH PASSWORD PASSWORD ATTRIBUTE1 ATTRIBUTE2...;
プロンプトが表示されたら、パスワードを入力します。
ロールの属性に関する詳細については、PostgreSQL のドキュメントをご覧ください。
- ユーザー テーブルを表示することによって、ユーザーの作成を確認できます。
SELECT * FROM pg_roles;
ユーザー パスワード ポリシーを設定する
組み込みの認証タイプを使用してパスワード ポリシーを設定できます。
gcloud
ユーザー パスワード ポリシーを設定するには、gcloud sql users set-password-policy
コマンドを使用します。
次のように置き換えます。
- USER_NAME: ユーザー名。
- INSTANCE_NAME: インスタンスの名前。
- HOST: 特定の IP アドレス、アドレス範囲、または任意のホストとしてのユーザーのホスト名(
%
)。 - PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS:(省略可)アカウントがロックされるまでにユーザーがパスワードの入力を再試行できる回数。チェックを有効にするには
--password-policy-enable-failed-attempts-check
、チェックを無効にするには--no-password-policy-enable-failed-attempts-check
を使用します。 - PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION:(省略可)パスワードが期限切れになるまでの日数を指定します。この期限が過ぎると、ユーザーは新しいパスワードを作成する必要があります。
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --password-policy-enable-failed-attempts-check \ --password-policy-allowed-failed-attempts=PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS \ --password-policy-password-expiration-duration=PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION
ユーザー パスワード ポリシーを削除するには、--clear-password-policy
パラメータを使用します。
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
ユーザー パスワード ポリシーを表示するには、ユーザーを一覧表示するをご覧ください。
REST v1
ユーザー パスワード ポリシーを設定するには、users:update メソッドで PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: インスタンス ID
- USER_ID: ユーザーの ID
- PASSWORD: ユーザーのパスワード
- FAILED_ATTEMPTS_CHECK:
true
に設定すると、ログイン試行の失敗回数のチェックが有効になり、上限に達するとアカウントがロックされます - NUMBER_OF_ATTEMPTS: ログイン試行の失敗回数。この回数を超えるとアカウントがロックされます
- PASSWORD_EXPIRATION_DURATION: パスワードが期限切れになるまでの日数。この期限が過ぎると、ユーザーは新しいパスワードを作成する必要があります
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
リクエストの本文(JSON):
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK", "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS", "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION" } }, } }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
ユーザー パスワード ポリシーを表示するには、ユーザーを一覧表示するをご覧ください。
REST v1beta4
ユーザー パスワード ポリシーを設定するには、users:update メソッドで PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: インスタンス ID
- USER_ID: ユーザーの ID
- PASSWORD: ユーザーのパスワード
- FAILED_ATTEMPTS_CHECK:
true
に設定すると、ログイン試行の失敗回数のチェックが有効になり、上限に達するとアカウントがロックされます - NUMBER_OF_ATTEMPTS: ログイン試行の失敗回数。この回数を超えるとアカウントがロックされます
- PASSWORD_EXPIRATION_DURATION: パスワードが期限切れになるまでの日数。この期限が過ぎると、ユーザーは新しいパスワードを作成する必要があります
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
リクエストの本文(JSON):
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK", "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS", "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION" } }, } }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
ユーザー パスワード ポリシーを表示するには、ユーザーを一覧表示するをご覧ください。
ユーザーを一覧表示する
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
gcloud
gcloud sql users list コマンドを使用して、このインスタンスのユーザーを一覧表示します。
gcloud sql users list \ --instance=INSTANCE_NAME
このコマンドは、各ユーザーの Name
、Host
、認証 Type
を返します。
さらに、組み込み認証タイプの場合は、パスワード ポリシーの設定とステータスが返されます。例:
NAME HOST TYPE PASSWORD_POLICY user1 BUILT_IN {'allowedFailedAttempts': 2, 'enableFailedAttemptsCheck': True, 'passwordExpirationDuration': '7d', 'status': { 'locked': True, 'passwordExpirationTime': '2022-07-01T19:53:45.822742904Z' } }
REST v1
インスタンスに定義されているユーザーを一覧表示するには、users:list メソッドで GET リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#usersList", "items": [ { "kind": "sql#user", "etag": "--redacted--", "name": "sqlserver", "host": "", "instance": "instance-id", "project": "project-id", "sqlserverUserDetails": { "serverRoles": [ "CustomerDbRootRole" ] } }, { "kind": "sql#user", "etag": "--redacted--", "name": "user-id-1", "host": "", "instance": "instance-id", "project": "project-id", "sqlserverUserDetails": { "serverRoles": [ "CustomerDbRootRole" ] } }, { "kind": "sql#user", "etag": "--redacted--", "name": "user-id-2", "host": "", "instance": "instance-id", "project": "project-id", "sqlserverUserDetails": { "serverRoles": [ "CustomerDbRootRole" ] } }, { ... }, { ... } ] }
ユーザー パスワード ポリシーが設定されている場合、レスポンスの items
セクションに passwordPolicy
セクションが含まれます。次のコードサンプルは passwordPolicy
セクションを示します。
{ ... "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : true, "allowedFailedAttempts" : 8, "passwordExpirationDuration" : "7d" } }, ... }
REST v1beta4
インスタンスに定義されているユーザーを一覧表示するには、users:list メソッドで GET リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#usersList", "items": [ { "kind": "sql#user", "etag": "--redacted--", "name": "sqlserver", "host": "", "instance": "instance-id", "project": "project-id", "sqlserverUserDetails": { "serverRoles": [ "CustomerDbRootRole" ] } }, { "kind": "sql#user", "etag": "--redacted--", "name": "user-id-1", "host": "", "instance": "instance-id", "project": "project-id", "sqlserverUserDetails": { "serverRoles": [ "CustomerDbRootRole" ] } }, { "kind": "sql#user", "etag": "--redacted--", "name": "user-id-2", "host": "", "instance": "instance-id", "project": "project-id", "sqlserverUserDetails": { "serverRoles": [ "CustomerDbRootRole" ] } }, { ... }, { ... } ] }
ユーザー パスワード ポリシーが設定されている場合、レスポンスの items
セクションに passwordPolicy
セクションが含まれます。次のコードサンプルは passwordPolicy
セクションを示します。
{ ... "passwordValidationUserPolicy" : { { "enableFailedAttemptsCheck" : true, "allowedFailedAttempts" : 8, "passwordExpirationDuration" : "7d" } }, ... }
psql クライアント
psql
プロンプトで、PostgreSQL ユーザーの一覧を表示します。
SELECT * FROM pg_roles;
ユーザーのパスワードを変更する
ユーザーのパスワードは、次のいずれかの方法で変更できます。
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
- 更新するユーザーのその他アイコン をクリックします。
- [パスワードの変更] を選択します。
- 新しいパスワードを指定します。
- [OK] をクリックします。
gcloud
gcloud sql users set-password
コマンドを使用してパスワードを変更します。
次のように置き換えます。
- USER_NAME: ユーザー名。
- INSTANCE_NAME: インスタンスの名前。
gcloud sql users set-password USER_NAME \ --instance=INSTANCE_NAME \ --prompt-for-password
REST v1
ユーザー パスワードを変更するには、users:update メソッドで PUT リクエストを使用します。
次のリクエストでは、ユーザー アカウント user_name
のパスワードを更新します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーのパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id
リクエストの本文(JSON):
{ "name": "user-id", "password": "password", "retainedPassword" : "dual-password" }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "UPDATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
ユーザー パスワードを変更するには、users:update メソッドで PUT リクエストを使用します。
次のリクエストでは、ユーザー アカウント user_name
のパスワードを更新します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーのパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id
リクエストの本文(JSON):
{ "name": "user-id", "password": "password", "retainedPassword" : "dual-password" }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "UPDATE_USER", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
psql クライアント
psql
プロンプトで、ALTER USER コマンドを実行します。- ユーザーのロックを解除します。
ALTER USER USER_NAME WITH LOGIN;
- パスワードを変更します。プロンプトが表示されたらパスワードを入力します。
ALTER USER USER_NAME WITH PASSWORD PASSWORD;
パスワード ポリシーの設定によりユーザーがロックされた場合は、パスワードを変更してロックを解除します。変更後、パスワードがパスワード ポリシーを遵守していることを確認します。
ユーザー パスワード ポリシーを削除する
認証タイプが組み込まれているユーザーからパスワード ポリシーを削除できます。
gcloud
ユーザー パスワード ポリシーを削除するには、gcloud sql users set-password-policy
コマンドと --clear-password-policy
パラメータを使用します。
次のように置き換えます。
- USER_NAME: ユーザー名
- INSTANCE_NAME: インスタンスの名前
- HOST: 特定の IP アドレス、アドレス範囲、または任意のホストとしてのユーザーのホスト名(
%
)
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
REST v1
ユーザー パスワード ポリシーを削除するには、users:update メソッドで PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: インスタンス ID
- USER_ID: ユーザーの ID
- PASSWORD: ユーザーのパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
リクエストの本文(JSON):
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : {} } }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
REST v1beta4
ユーザー パスワード ポリシーを削除するには、users:update メソッドで PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: インスタンス ID
- USER_ID: ユーザーの ID
- PASSWORD: ユーザーのパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
リクエストの本文(JSON):
{ "name": "USER_ID", "password": "PASSWORD", "data": { "passwordValidationUserPolicy" : {} } }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
ユーザーを削除する
デフォルト ユーザーはユーザーを削除できます。
ユーザーを削除する前に、そのユーザーが所有するすべてのオブジェクトを削除するか、ユーザーの所有権の割り当てを変更して、他のオブジェクトにロールが付与されている権限をすべて取り消す必要があります。
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
- 削除するユーザーのその他アイコン をクリックします。
- [削除] を選択して、もう一度 [削除] を選択します。
gcloud
gcloud sql users delete
コマンドを使用して、ユーザーを削除します。
次のように置き換えます。
- USER_NAME: ユーザー名。
- INSTANCE_NAME: インスタンスの名前。
gcloud sql users delete USER_NAME \ --instance=INSTANCE_NAME
REST v1
以下のリクエストでは、users:delete メソッドを使用して、指定したユーザー アカウントを削除します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: 目的のインスタンス ID
- USERNAME: ユーザーまたはサービス アカウントのメールアドレス
HTTP メソッドと URL:
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "DELETE_USER", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
以下のリクエストでは、users:delete メソッドを使用して、指定したユーザー アカウントを削除します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: 目的のインスタンス ID
- USERNAME: ユーザーまたはサービス アカウントのメールアドレス
HTTP メソッドと URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "DONE", "user": "user@example.com", "insertTime": "2020-02-07T22:38:41.217Z", "startTime": "2020-02-07T22:38:41.217Z", "endTime": "2020-02-07T22:38:44.801Z", "operationType": "DELETE_USER", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
psql クライアント
psql
プロンプトで、ユーザーを削除します。DROP ROLE USER_NAME;
DROP ROLE
ステートメントの詳細については、PostgreSQL のドキュメントをご覧ください。
ユーザー プロパティを更新する
属性などのユーザー プロパティを更新するには、psql
クライアントを使用する必要があります。詳細については、PostgreSQL ドキュメントのデータベースの役割をご覧ください。
次のステップ
- Cloud SQL でのユーザーの操作の詳細について学習する。
- ロールの作成に関する PostgreSQL ドキュメントを読む。
- インスタンスへの接続について学習する。